fix: use Docker convenience script for Ubuntu/Debian
The manual apt repo setup failed because uname -m returns x86_64 but Docker repo expects amd64 as arch name. Use get.docker.com which handles arch/codename/GPG correctly. Also added proper arch mapping (x86_64→amd64, aarch64→arm64) for future use.
This commit is contained in:
+9
-12
@@ -36,7 +36,12 @@ detect_os() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
OS=$(detect_os)
|
OS=$(detect_os)
|
||||||
ARCH=$(uname -m)
|
RAW_ARCH=$(uname -m)
|
||||||
|
case "$RAW_ARCH" in
|
||||||
|
x86_64) ARCH="amd64" ;;
|
||||||
|
aarch64) ARCH="arm64" ;;
|
||||||
|
*) ARCH="$RAW_ARCH" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
# ── Git ──────────────────────────────────────────
|
# ── Git ──────────────────────────────────────────
|
||||||
if ! command -v git &>/dev/null; then
|
if ! command -v git &>/dev/null; then
|
||||||
@@ -66,15 +71,7 @@ if $NEED_DOCKER; then
|
|||||||
info "Installing Docker Engine..."
|
info "Installing Docker Engine..."
|
||||||
case "$OS" in
|
case "$OS" in
|
||||||
ubuntu|debian)
|
ubuntu|debian)
|
||||||
sudo apt update -qq
|
curl -fsSL https://get.docker.com | sh
|
||||||
sudo apt install -y -qq ca-certificates curl
|
|
||||||
sudo install -m 0755 -d /etc/apt/keyrings
|
|
||||||
sudo curl -fsSL https://download.docker.com/linux/"$OS"/gpg -o /etc/apt/keyrings/docker.asc
|
|
||||||
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
|
||||||
echo "deb [arch=$ARCH signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/$OS $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
|
|
||||||
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
||||||
sudo apt update -qq
|
|
||||||
sudo apt install -y -qq docker-ce docker-ce-cli containerd.io
|
|
||||||
;;
|
;;
|
||||||
arch|endeavouros)
|
arch|endeavouros)
|
||||||
sudo pacman -S --noconfirm docker
|
sudo pacman -S --noconfirm docker
|
||||||
@@ -97,8 +94,8 @@ if $NEED_DOCKER; then
|
|||||||
log "Docker Engine installed"
|
log "Docker Engine installed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if $NEED_COMPOSE && ! command -v docker &>/dev/null; then
|
# Re-check compose — fresh Docker install may have included it
|
||||||
# fresh install — compose plugin is already included in docker-ce package
|
if $NEED_COMPOSE && docker compose version &>/dev/null; then
|
||||||
NEED_COMPOSE=false
|
NEED_COMPOSE=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user