feat: use Ubuntu native docker.io packages for Ubuntu 26.04+
Ubuntu 26.04+ ships Docker in its own repositories, so install docker.io, docker-compose-v2, and docker-buildx directly from apt instead of adding Docker's official repository. Falls back to the official repo method for older Ubuntu versions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -555,7 +555,36 @@ do_install() {
|
||||
|
||||
# Run setup for each distro accordingly
|
||||
case "$lsb_dist" in
|
||||
ubuntu|debian|raspbian)
|
||||
ubuntu)
|
||||
# Check if Ubuntu version is 26.04 or higher — use native docker.io packages
|
||||
ubuntu_major_version=""
|
||||
if [ -r /etc/os-release ]; then
|
||||
ubuntu_major_version="$(. /etc/os-release && echo "$VERSION_ID" | cut -d'.' -f1)"
|
||||
fi
|
||||
if [ -n "$ubuntu_major_version" ] && [ "$ubuntu_major_version" -ge 26 ]; then
|
||||
echo "# Ubuntu $ubuntu_major_version detected — installing Docker from Ubuntu repositories"
|
||||
(
|
||||
if ! is_dry_run; then
|
||||
set -x
|
||||
fi
|
||||
$sh_c 'apt-get -qq update >/dev/null'
|
||||
# Try installing directly; if packages not found, enable Universe repo and retry
|
||||
if ! $sh_c "DEBIAN_FRONTEND=noninteractive apt-get -y -qq install docker.io docker-compose-v2 docker-buildx >/dev/null 2>&1"; then
|
||||
$sh_c "DEBIAN_FRONTEND=noninteractive apt-get -y -qq install software-properties-common >/dev/null"
|
||||
$sh_c 'add-apt-repository -y universe >/dev/null'
|
||||
$sh_c 'apt-get -qq update >/dev/null'
|
||||
$sh_c "DEBIAN_FRONTEND=noninteractive apt-get -y -qq install docker.io docker-compose-v2 docker-buildx >/dev/null"
|
||||
fi
|
||||
)
|
||||
if [ "$NO_AUTOSTART" != "1" ]; then
|
||||
start_docker_daemon
|
||||
fi
|
||||
echo_docker_as_nonroot
|
||||
exit 0
|
||||
fi
|
||||
# Fall through to Docker's official repository for older Ubuntu versions
|
||||
;&
|
||||
debian|raspbian)
|
||||
pre_reqs="ca-certificates curl"
|
||||
apt_repo="deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] $DOWNLOAD_URL/linux/$lsb_dist $dist_version $CHANNEL"
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user