#!/usr/bin/env bash set -euo pipefail # Установка Docker и Docker Compose на Ubuntu 22.04 / 24.04 if [[ "${EUID}" -ne 0 ]]; then echo "Запустите с sudo: sudo ./scripts/install-ubuntu.sh" exit 1 fi if ! grep -qi ubuntu /etc/os-release 2>/dev/null; then echo "Скрипт предназначен для Ubuntu." exit 1 fi export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y ca-certificates curl gnupg ufw # Docker official repo install -m 0755 -d /etc/apt/keyrings if [[ ! -f /etc/apt/keyrings/docker.gpg ]]; then curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg chmod a+r /etc/apt/keyrings/docker.gpg fi echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${VERSION_CODENAME}") stable" \ > /etc/apt/sources.list.d/docker.list apt-get update apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin systemctl enable --now docker # Firewall ufw allow OpenSSH ufw allow 80/tcp ufw allow 443/tcp ufw --force enable SUDO_USER_NAME="${SUDO_USER:-$USER}" if id "${SUDO_USER_NAME}" &>/dev/null; then usermod -aG docker "${SUDO_USER_NAME}" echo "Пользователь ${SUDO_USER_NAME} добавлен в группу docker." echo "Перелогиньтесь или выполните: newgrp docker" fi echo "" echo "Docker установлен: $(docker --version)" echo "Compose: $(docker compose version)"