feat: Добавлены команды для установки и обновления 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, так и docker compose (новый формат)

Автор: Сергей Антропов, сайт: https://devops.org.ru
This commit is contained in:
Sergey Antropoff 2025-09-10 19:53:47 +03:00
parent db957f9890
commit 95c7bc6432
2 changed files with 156 additions and 0 deletions

View File

@ -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
# =============================================================================
# УПРАВЛЕНИЕ ИНФРАСТРУКТУРОЙ
# =============================================================================

View File

@ -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
```
### Обслуживание
| Команда | Описание |