2.6 KiB
2.6 KiB
Docker Compose
Compose-конфигурация разделена на несколько файлов в environments.
Файлы
docker-compose.networks.yml-public-networkиinternal-network.docker-compose.dbs.yml- PostgreSQL и Redis.docker-compose.apps.yml- nginx,php84,php82,nextjs.docker-compose.dev.yml- Node.js helper-контейнер для разработки frontend-приложений.docker-compose.monitoring.yml- node-exporter, php-fpm-exporter, Prometheus, Grafana.docker-compose.jenkins.yml- Jenkins.
Make targets
make help
Основные цели:
make dev- dev-режим без мониторинга;make up- prod-режим с мониторингом;make down- остановка сервисов;make restart- остановка и повторный запуск;make clean- остановка и удаление volumes;make prune- полная очистка Docker;make chown-up- выставить владельцев для мониторинга и PostgreSQL data;make chown-1000- вернуть владельца1000:1000;make fix-certs- поправить права сертификатов nginx;make rebuild-nextjs- пересобрать и перезапустить Next.js-контейнер.
Ручной запуск compose
Эквивалент make dev:
COMPOSE_PROJECT_ENV=dev COMPOSE_NODE_ENV=development \
docker compose --env-file .env \
-f environments/docker-compose.networks.yml \
-f environments/docker-compose.dbs.yml \
-f environments/docker-compose.apps.yml \
-f environments/docker-compose.dev.yml \
up -d
Эквивалент make up:
COMPOSE_PROJECT_ENV=prod COMPOSE_NODE_ENV=production \
docker compose --env-file .env \
-f environments/docker-compose.networks.yml \
-f environments/docker-compose.dbs.yml \
-f environments/docker-compose.apps.yml \
-f environments/docker-compose.dev.yml \
-f environments/docker-compose.monitoring.yml \
up -d
Порты
80,443- nginx.5432- PostgreSQL.3001- Next.jssovamed.3000- Grafana.9090- Prometheus.8080,50000- Jenkins.
Volumes и данные
PostgreSQL хранит данные в infrastructure/pgsql/data, Redis - в infrastructure/redis/data. Эти директории игнорируются git и не должны удаляться без необходимости.
make clean удаляет docker volumes, а make prune чистит Docker глобально на машине.