From 95c7bc643289a34ba5ac68db465b6d6aec837ecf Mon Sep 17 00:00:00 2001 From: Sergey Antropoff Date: Wed, 10 Sep 2025 19:53:47 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8=20=D0=B8=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20Docker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлена команда make docker-install для установки Docker через get.docker.com - Добавлена команда make docker-update для обновления Docker - Добавлена команда make docker-compose-install для установки Docker Compose - Добавлена команда make docker-compose-update для обновления Docker Compose - Добавлена команда make docker-check для проверки версий и статуса - Обновлена документация с инструкциями по установке Docker - Все команды включают проверки существования и информативные сообщения - Поддержка как docker-compose, так и docker compose (новый формат) Автор: Сергей Антропов, сайт: https://devops.org.ru --- Makefile | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) diff --git a/Makefile b/Makefile index 9329bf5..6d90b39 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,7 @@ COMPOSE_FILE := docker-compose.yml .PHONY: help setup up down restart status logs clean .PHONY: kafka-topics kafka-ui postgres-cli clickhouse-cli .PHONY: health-check backup restore ssl-generate ssl-clean ssl-info +.PHONY: docker-install docker-update docker-compose-install docker-compose-update docker-check # ============================================================================= # ОСНОВНЫЕ КОМАНДЫ @@ -39,6 +40,89 @@ setup: ## Первоначальная настройка инфраструкт @$(MAKE) health-check @echo "✅ Инфраструктура готова к работе!" +# ============================================================================= +# УСТАНОВКА И ОБНОВЛЕНИЕ DOCKER +# ============================================================================= + +docker-install: ## Установить Docker через get.docker.com + @echo "🐳 Установка Docker..." + @if command -v docker >/dev/null 2>&1; then \ + echo "⚠️ Docker уже установлен. Используйте 'make docker-update' для обновления."; \ + exit 1; \ + fi + @echo "📥 Загрузка и установка Docker..." + @curl -fsSL https://get.docker.com -o get-docker.sh + @sudo sh get-docker.sh + @rm get-docker.sh + @echo "🔧 Добавление пользователя в группу docker..." + @sudo usermod -aG docker $$USER + @echo "✅ Docker установлен успешно!" + @echo "💡 Перезайдите в систему или выполните 'newgrp docker' для применения изменений группы" + +docker-update: ## Обновить Docker до последней версии + @echo "🔄 Обновление Docker..." + @if ! command -v docker >/dev/null 2>&1; then \ + echo "❌ Docker не установлен. Используйте 'make docker-install' для установки."; \ + exit 1; \ + fi + @echo "📥 Загрузка и установка последней версии Docker..." + @curl -fsSL https://get.docker.com -o get-docker.sh + @sudo sh get-docker.sh + @rm get-docker.sh + @echo "✅ Docker обновлен успешно!" + +docker-compose-install: ## Установить Docker Compose + @echo "🐳 Установка Docker Compose..." + @if command -v docker-compose >/dev/null 2>&1 || docker compose version >/dev/null 2>&1; then \ + echo "⚠️ Docker Compose уже установлен. Используйте 'make docker-compose-update' для обновления."; \ + exit 1; \ + fi + @echo "📥 Загрузка Docker Compose..." + @sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$$(uname -s)-$$(uname -m)" -o /usr/local/bin/docker-compose + @sudo chmod +x /usr/local/bin/docker-compose + @echo "✅ Docker Compose установлен успешно!" + +docker-compose-update: ## Обновить Docker Compose до последней версии + @echo "🔄 Обновление Docker Compose..." + @if ! command -v docker-compose >/dev/null 2>&1 && ! docker compose version >/dev/null 2>&1; then \ + echo "❌ Docker Compose не установлен. Используйте 'make docker-compose-install' для установки."; \ + exit 1; \ + fi + @echo "📥 Загрузка последней версии Docker Compose..." + @sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$$(uname -s)-$$(uname -m)" -o /usr/local/bin/docker-compose + @sudo chmod +x /usr/local/bin/docker-compose + @echo "✅ Docker Compose обновлен успешно!" + +docker-check: ## Проверить версии Docker и Docker Compose + @echo "🔍 Проверка версий Docker и Docker Compose..." + @echo "" + @echo "🐳 Docker:" + @if command -v docker >/dev/null 2>&1; then \ + docker --version; \ + else \ + echo "❌ Docker не установлен"; \ + fi + @echo "" + @echo "🐳 Docker Compose:" + @if command -v docker-compose >/dev/null 2>&1; then \ + docker-compose --version; \ + elif docker compose version >/dev/null 2>&1; then \ + docker compose version; \ + else \ + echo "❌ Docker Compose не установлен"; \ + fi + @echo "" + @echo "🔧 Docker Engine статус:" + @if command -v docker >/dev/null 2>&1; then \ + if docker info >/dev/null 2>&1; then \ + echo "✅ Docker Engine запущен"; \ + else \ + echo "❌ Docker Engine не запущен"; \ + fi; \ + else \ + echo "❌ Docker не установлен"; \ + fi + # ============================================================================= # УПРАВЛЕНИЕ ИНФРАСТРУКТУРОЙ # ============================================================================= diff --git a/README.md b/README.md index 5b43bf8..7bdf796 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,11 @@ SensusInfra — это полная инфраструктура для рабо # Клонируйте репозиторий и перейдите в директорию cd SensusInfra +# Установите Docker и Docker Compose (если не установлены) +make docker-check # Проверить текущие версии +make docker-install # Установить Docker +make docker-compose-install # Установить Docker Compose + # Файл .env будет создан автоматически при выполнении make setup # Или создайте вручную: cp env.example .env @@ -106,6 +111,16 @@ make logs # Логи всех сервисов | `make logs` | Показать логи всех сервисов | | `make health-check` | Проверить здоровье сервисов | +### Установка и обновление Docker + +| Команда | Описание | +|---------|----------| +| `make docker-install` | Установить Docker через get.docker.com | +| `make docker-update` | Обновить Docker до последней версии | +| `make docker-compose-install` | Установить Docker Compose | +| `make docker-compose-update` | Обновить Docker Compose до последней версии | +| `make docker-check` | Проверить версии Docker и Docker Compose | + ### Работа с базами данных | Команда | Описание | @@ -125,6 +140,63 @@ make logs # Логи всех сервисов | `make ssl-clean` | Очистка SSL сертификатов | | `make ssl-info` | Информация о SSL сертификатах | +## Установка Docker + +### Автоматическая установка + +Проект включает команды для автоматической установки и обновления Docker: + +```bash +# Проверить текущие версии +make docker-check + +# Установить Docker (если не установлен) +make docker-install + +# Установить Docker Compose (если не установлен) +make docker-compose-install + +# Обновить Docker до последней версии +make docker-update + +# Обновить Docker Compose до последней версии +make docker-compose-update +``` + +### Ручная установка + +Если автоматическая установка не работает, используйте официальные инструкции: + +#### Docker +```bash +# Ubuntu/Debian +curl -fsSL https://get.docker.com -o get-docker.sh +sudo sh get-docker.sh + +# CentOS/RHEL +sudo yum install -y docker +sudo systemctl start docker +sudo systemctl enable docker +``` + +#### Docker Compose +```bash +# Скачать последнюю версию +sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +sudo chmod +x /usr/local/bin/docker-compose +``` + +### Проверка установки + +```bash +# Проверить версии +make docker-check + +# Или вручную +docker --version +docker compose version +``` + ### Обслуживание | Команда | Описание |