Files

74 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```bash
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`:
```bash
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`:
```bash
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.js `sovamed`.
- `3000` - Grafana.
- `9090` - Prometheus.
- `8080`, `50000` - Jenkins.
## Volumes и данные
PostgreSQL хранит данные в `infrastructure/pgsql/data`, Redis - в `infrastructure/redis/data`. Эти директории игнорируются git и не должны удаляться без необходимости.
`make clean` удаляет docker volumes, а `make prune` чистит Docker глобально на машине.