-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmakefile
More file actions
76 lines (63 loc) · 3.08 KB
/
Copy pathmakefile
File metadata and controls
76 lines (63 loc) · 3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
.PHONY: help build up down restart logs logs-app logs-web composer-install fix-permissions init
# Определяем переменные
DOCKER_COMPOSE = docker compose
EXEC_PHP = $(DOCKER_COMPOSE) exec app
COMPOSER = $(EXEC_PHP) composer
# Цель по умолчанию
help:
@echo "Доступные команды:"
@echo " make build - Собрать контейнеры"
@echo " make up - Запустить контейнеры в фоне"
@echo " make down - Остановить контейнеры"
@echo " make restart - Перезапустить контейнеры"
@echo " make logs - Показать логи всех сервисов"
@echo " make logs-app - Показать логи приложения"
@echo " make logs-web - Показать логи nginx"
@echo " make composer-install - Установить зависимости Composer"
@echo " make fix-permissions - Исправить права доступа на папках"
@echo " make env-file - Создать .env файл из примера (если не существует)"
@echo " make init - Полная инициализация проекта (env-file + build + up + composer-install + fix-permissions)"
# Создание .env файла из примера (если не существует)
env-file:
@if [ ! -f .env ]; then \
echo "Создание .env файла из example.env..."; \
cp example.env .env; \
echo "Не забудьте отредактировать .env файл и установить правильные значения!"; \
else \
echo ".env файл уже существует"; \
fi
# Сборка контейнеров
build: env-file
@echo "Сборка Docker контейнеров..."
$(DOCKER_COMPOSE) build --build-arg UID=${UID} --build-arg GID=${GID} --build-arg APP_ENV=${APP_ENV}
# Запуск контейнеров
up:
@echo "Запуск Docker контейнеров..."
$(DOCKER_COMPOSE) up -d
# Остановка контейнеров
down:
@echo "Остановка Docker контейнеров..."
$(DOCKER_COMPOSE) down
# Перезапуск контейнеров
restart: down up
# Просмотр логов
logs:
$(DOCKER_COMPOSE) logs -f
logs-app:
$(DOCKER_COMPOSE) logs -f app
logs-web:
$(DOCKER_COMPOSE) logs -f web
# Установка Composer зависимостей
composer-install:
@echo "Установка Composer зависимостей..."
$(COMPOSER) install --optimize-autoloader --no-interaction
# Исправление прав доступа
fix-permissions:
@echo "Исправление прав доступа на папках..."
$(EXEC_PHP) chmod -R 775 var
$(EXEC_PHP) setfacl -dR -m u:www-data:rwX var
$(EXEC_PHP) setfacl -R -m u:www-data:rwX var
# Полная инициализация проекта
init: env-file build up composer-install fix-permissions
@echo "Проект успешно инициализирован!"
@echo "Приложение доступно по адресу: http://localhost:8080"