fix(bootstrap): skip Docker apt if compose ready; doc containerd conflict
Made-with: Cursor
This commit is contained in:
@@ -110,8 +110,7 @@ install_packages() {
|
||||
log "Устанавливаю зависимости..."
|
||||
run_cmd apt-get update
|
||||
local packages=(
|
||||
ca-certificates curl jq git openssl
|
||||
docker.io docker-compose-plugin openssh-client
|
||||
ca-certificates curl jq git openssl openssh-client
|
||||
)
|
||||
if [[ "$ENABLE_HAPROXY" == "true" ]]; then
|
||||
packages+=(haproxy)
|
||||
@@ -120,9 +119,31 @@ install_packages() {
|
||||
packages+=(sshpass)
|
||||
fi
|
||||
run_cmd apt-get install -y "${packages[@]}"
|
||||
bootstrap_install_docker
|
||||
ok "Пакеты установлены"
|
||||
}
|
||||
|
||||
# Docker: не трогаем apt, если уже есть рабочий «docker compose» (избегаем лишних транзакций и конфликтов).
|
||||
# Ошибка containerd vs containerd.io — см. docs/troubleshooting.md §12.
|
||||
bootstrap_install_docker() {
|
||||
if [[ "$DRY_RUN" == "true" ]]; then
|
||||
echo "[DRY] apt-get install -y docker.io docker-compose-plugin"
|
||||
return 0
|
||||
fi
|
||||
if command -v docker >/dev/null 2>&1 && docker compose version >/dev/null 2>&1; then
|
||||
ok "Docker и «docker compose» уже доступны — не устанавливаю docker.io/docker-compose-plugin"
|
||||
return 0
|
||||
fi
|
||||
log "Устанавливаю docker.io и docker-compose-plugin..."
|
||||
if apt-get install -y docker.io docker-compose-plugin; then
|
||||
return 0
|
||||
fi
|
||||
err "Не удалось установить docker.io и docker-compose-plugin."
|
||||
err "Частая причина: конфликт пакетов containerd (Ubuntu, от docker.io) и containerd.io (Docker Inc)."
|
||||
warn "Оставьте один стек Docker: см. docs/troubleshooting.md — «12) containerd.io Conflicts: containerd»."
|
||||
exit 1
|
||||
}
|
||||
|
||||
setup_dirs() {
|
||||
log "Создаю рабочие директории..."
|
||||
run_cmd mkdir -p "$GITEA_BASE_DIR/data/gitea/conf"
|
||||
|
||||
Reference in New Issue
Block a user