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>
This commit is contained in:
@@ -48,3 +48,45 @@ services:
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user