# Makefile для LogBoard+ # Автор: Сергей Антропов # Сайт: https://devops.org.ru .PHONY: help setup build up down restart logs clean status ps shell up-root down-root # Переменные COMPOSE_FILE = docker-compose.yml SERVICE_NAME = logboard # Цвета для вывода GREEN = \033[0;32m YELLOW = \033[1;33m RED = \033[0;31m NC = \033[0m # No Color help: ## Показать справку по командам @echo "$(GREEN)LogBoard+ - Команды управления$(NC)" @echo "" @echo "$(YELLOW)Основные команды:$(NC)" @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " $(GREEN)%-15s$(NC) %s\n", $$1, $$2}' @echo "" @echo "$(YELLOW)Примеры использования:$(NC)" @echo " make setup # Настроить переменные окружения" @echo " make build # Собрать образ" @echo " make up # Запустить сервисы" @echo " make down # Остановить сервисы" @echo " make restart # Перезапустить сервисы" @echo " make logs # Показать логи" setup: ## Настроить переменные окружения (копировать env.example в .env) @echo "$(GREEN)Настройка переменных окружения...$(NC)" @if [ ! -f .env ]; then \ cp env.example .env; \ echo "$(GREEN)Файл .env создан из env.example$(NC)"; \ echo "$(YELLOW)Не забудьте отредактировать .env под свои нужды!$(NC)"; \ else \ echo "$(YELLOW)Файл .env уже существует.$(NC)"; \ echo "$(YELLOW)Для пересоздания удалите .env и запустите make setup$(NC)"; \ fi build: ## Собрать Docker образ @echo "$(GREEN)Сборка Docker образа...$(NC)" docker compose -f $(COMPOSE_FILE) build --no-cache @echo "$(GREEN)Образ собран успешно!$(NC)" up: ## Запустить сервисы в фоновом режиме @echo "$(GREEN)Запуск сервисов...$(NC)" docker compose -f $(COMPOSE_FILE) up -d @echo "$(GREEN)Сервисы запущены!$(NC)" @echo "$(YELLOW)Приложение доступно по адресу: http://localhost:9001$(NC)" down: ## Остановить и удалить сервисы @echo "$(YELLOW)Остановка сервисов...$(NC)" docker compose -f $(COMPOSE_FILE) down @echo "$(GREEN)Сервисы остановлены!$(NC)" restart: ## Перезапустить сервисы @echo "$(YELLOW)Перезапуск сервисов...$(NC)" docker compose -f $(COMPOSE_FILE) restart @echo "$(GREEN)Сервисы перезапущены!$(NC)" logs: ## Показать логи сервисов @echo "$(GREEN)Логи сервисов:$(NC)" docker compose -f $(COMPOSE_FILE) logs -f logs-tail: ## Показать последние 100 строк логов @echo "$(GREEN)Последние 100 строк логов:$(NC)" docker compose -f $(COMPOSE_FILE) logs --tail=100 clean: ## Остановить сервисы и удалить образы @echo "$(RED)Очистка проекта...$(NC)" docker compose -f $(COMPOSE_FILE) down --rmi all --volumes --remove-orphans @echo "$(GREEN)Очистка завершена!$(NC)" status: ## Показать статус сервисов @echo "$(GREEN)Статус сервисов:$(NC)" docker compose -f $(COMPOSE_FILE) ps ps: status ## Алиас для команды status shell: ## Подключиться к контейнеру сервиса @echo "$(GREEN)Подключение к контейнеру $(SERVICE_NAME)...$(NC)" docker compose -f $(COMPOSE_FILE) exec $(SERVICE_NAME) /bin/bash start: up ## Алиас для команды up stop: down ## Алиас для команды down dev: ## Запуск в режиме разработки (с выводом логов) @echo "$(GREEN)Запуск в режиме разработки...$(NC)" docker compose -f $(COMPOSE_FILE) up --build rebuild: ## Пересобрать и запустить сервисы @echo "$(YELLOW)Пересборка и запуск сервисов...$(NC)" docker compose -f $(COMPOSE_FILE) down docker compose -f $(COMPOSE_FILE) build --no-cache docker compose -f $(COMPOSE_FILE) up -d @echo "$(GREEN)Сервисы пересобраны и запущены!$(NC)" @echo "$(YELLOW)Приложение доступно по адресу: http://localhost:9001$(NC)" up-root: ## Запустить сервисы с правами root (для решения проблем с Docker socket) @echo "$(GREEN)Запуск сервисов с правами root...$(NC)" docker compose -f docker-compose.root.yml up -d @echo "$(GREEN)Сервисы запущены с правами root!$(NC)" @echo "$(YELLOW)Приложение доступно по адресу: http://localhost:9001$(NC)" down-root: ## Остановить сервисы с правами root @echo "$(YELLOW)Остановка сервисов с правами root...$(NC)" docker compose -f docker-compose.root.yml down @echo "$(GREEN)Сервисы с правами root остановлены!$(NC)"