79 lines
2.4 KiB
YAML
79 lines
2.4 KiB
YAML
# Прод/test-контур: образы тянутся из Gitea Registry.
|
||
#
|
||
# Контуры разделяются именем compose-проекта (-p) и файлом окружения (ENV_FILE):
|
||
# ENV_FILE=env/prod.env docker compose -p prod -f docker-compose.prod.yml up -d
|
||
# ENV_FILE=env/test.env docker compose -p test -f docker-compose.prod.yml up -d
|
||
#
|
||
# Имя проекта задаёт отдельные volume'ы (pgdata) — у prod и test свои БД.
|
||
services:
|
||
postgres:
|
||
image: postgres:16-alpine
|
||
restart: unless-stopped
|
||
environment:
|
||
POSTGRES_DB: ${DB_NAME:-dispel_evil}
|
||
POSTGRES_USER: ${DB_USER:-de_admin}
|
||
POSTGRES_PASSWORD: ${DB_PASSWORD:?задайте DB_PASSWORD}
|
||
volumes:
|
||
- pgdata:/var/lib/postgresql/data
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-de_admin} -d ${DB_NAME:-dispel_evil}"]
|
||
interval: 10s
|
||
timeout: 5s
|
||
retries: 10
|
||
|
||
migrate:
|
||
image: flyway/flyway:10
|
||
command: ["migrate"]
|
||
environment:
|
||
FLYWAY_URL: jdbc:postgresql://postgres:5432/${DB_NAME:-dispel_evil}
|
||
FLYWAY_USER: ${DB_USER:-de_admin}
|
||
FLYWAY_PASSWORD: ${DB_PASSWORD:?задайте DB_PASSWORD}
|
||
FLYWAY_LOCATIONS: filesystem:/flyway/sql
|
||
FLYWAY_BASELINE_ON_MIGRATE: "true"
|
||
FLYWAY_CONNECT_RETRIES: "10"
|
||
volumes:
|
||
- ./sql:/flyway/sql:ro
|
||
depends_on:
|
||
postgres:
|
||
condition: service_healthy
|
||
restart: "no"
|
||
|
||
bot:
|
||
image: ${REGISTRY:-git.mpakosrv.ru}/mpakobecx/dispelevilbot-bot:${IMAGE_TAG:-latest}
|
||
restart: unless-stopped
|
||
env_file:
|
||
- ${ENV_FILE:-env/prod.env}
|
||
environment:
|
||
DB_HOST: postgres
|
||
DB_PORT: "5432"
|
||
depends_on:
|
||
postgres:
|
||
condition: service_healthy
|
||
migrate:
|
||
condition: service_completed_successfully
|
||
logging:
|
||
driver: json-file
|
||
options:
|
||
max-size: "10m"
|
||
max-file: "3"
|
||
|
||
# --- Reverse proxy и TLS (Блок 2.4) ---
|
||
# Включается, когда появится админка/Mini App (Блоки 4–5).
|
||
# Раскомментировать и положить deploy/Caddyfile:
|
||
#
|
||
# caddy:
|
||
# image: caddy:2
|
||
# restart: unless-stopped
|
||
# ports:
|
||
# - "80:80"
|
||
# - "443:443"
|
||
# volumes:
|
||
# - ./deploy/Caddyfile:/etc/caddy/Caddyfile:ro
|
||
# - caddy_data:/data
|
||
# - caddy_config:/config
|
||
|
||
volumes:
|
||
pgdata:
|
||
# caddy_data:
|
||
# caddy_config:
|