Files
api-copp/docker-compose.yml
jze9 d8438da334 refactor: объединить docker-compose_db.yml в docker-compose.yml через profiles
Два файла и две команды разворачивания заменены одним docker-compose.yml.
postgres/redis перенесены туда же за профилем local-db — не поднимаются
по умолчанию (app по умолчанию идёт на внешние DB_HOST/REDIS_HOST из
.env), включаются явно через --profile local-db up -d. Проверено
`docker compose config` в обоих режимах.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-16 12:40:04 +05:00

93 lines
2.3 KiB
YAML

services:
api:
build:
context: .
dockerfile: Dockerfile.api
ports:
- "8000:8000"
environment:
- APP_PATH=/app
- DEBUG=${DEBUG}
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT}
- DB_USER=${DB_USER}
- DB_PASS=${DB_PASS}
- DB_NAME=${DB_NAME}
# Redis connection (external)
- REDIS_HOST=${REDIS_HOST}
- REDIS_PORT=${REDIS_PORT}
- REDIS_DB=${REDIS_DB}
- REDIS_PASSWORD=${REDIS_PASSWORD}
- SECRET_KEY=${SECRET_KEY}
- ADMIN_KEY=${ADMIN_KEY}
- DOCS_USERNAME=${DOCS_USERNAME}
- DOCS_PASSWORD=${DOCS_PASSWORD}
volumes:
- ./data/radar:/app/data/radar
restart: unless-stopped
web-react:
build:
context: ./web-react
dockerfile: Dockerfile
ports:
- "80:80"
depends_on:
- api
restart: unless-stopped
stats:
build:
context: .
dockerfile: Dockerfile.stats
ports:
- "8081:8081"
environment:
- API_URL=http://api:8000
depends_on:
- api
restart: unless-stopped
# ── Локальные БД (опционально) ─────────────────────────────────────────
# По умолчанию api ходит на внешние DB_HOST/REDIS_HOST из .env. Эти два
# сервиса поднимаются только явным флагом профиля:
# docker compose --profile local-db up -d
postgres:
image: postgres:latest
container_name: postgres
profiles: ["local-db"]
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- ./data/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 10
start_period: 10s
redis:
image: redis:alpine
container_name: redis
profiles: ["local-db"]
command: >
redis-server
--requirepass ${REDIS_PASSWORD}
--appendonly yes
--appendfsync everysec
--maxmemory 256mb
--maxmemory-policy volatile-lru
--tcp-keepalive 60
--timeout 300
--loglevel notice
ports:
- 6379:6379
volumes:
- ./data/redis:/data
restart: always