db_kyc_project/docker-compose.yml

104 lines
2.2 KiB
YAML
Raw Normal View History

2024-12-12 22:12:00 +03:00
volumes:
db_data: {}
batcher_db_data: {}
redis_data: {}
backend_media: {}
2024-12-12 22:12:00 +03:00
services:
backend:
build: ./backend
2024-12-12 22:12:00 +03:00
depends_on:
postgres: &healthy-dependency
condition: service_healthy
rabbitmq: *healthy-dependency
2024-12-12 22:12:00 +03:00
volumes:
- backend_media:/app/media
command: /app/scripts/start.sh
2024-12-12 22:12:00 +03:00
restart: on-failure
env_file: &backend-env-files
2024-12-12 22:12:00 +03:00
- .env/dev/pg
- .env/dev/back
- .env/dev/rmq
- .env/dev/bot
- .env/dev/web
ports:
- '8000:8000'
postgres: &pg-conf
image: postgres:17-alpine
2024-12-12 22:12:00 +03:00
volumes:
- db_data:/var/lib/postgresql/data
env_file:
- .env/dev/pg
ports:
- '5432:5432'
user: postgres
healthcheck: &pg-healthcheck
test: [ "CMD-SHELL", "pg_isready" ]
interval: 5s
timeout: 2s
retries: 5
2024-12-12 22:12:00 +03:00
celery:
build: ./backend
command: /app/scripts/start_celery.sh
env_file: *backend-env-files
environment:
- CELERY_WORKER_COUNT=1
2024-12-12 22:12:00 +03:00
depends_on:
backend:
condition: service_started
rabbitmq: *healthy-dependency
2024-12-12 22:12:00 +03:00
rabbitmq:
container_name: 'rabbitmq'
image: 'rabbitmq:3-management-alpine'
env_file:
- .env/dev/rmq
ports:
- '5672:5672'
- '15672:15672'
healthcheck:
<<: *pg-healthcheck
test: rabbitmq-diagnostics -q ping
interval: 10s
timeout: 2s
2024-12-12 22:12:00 +03:00
redis:
env_file:
- .env/dev/redis
image: redis
command: bash -c "redis-server --appendonly yes --requirepass $${REDIS_PASSWORD}"
ports:
- '6379:6379'
volumes:
- redis_data:/data
healthcheck:
<<: *pg-healthcheck
test: "[ $$(redis-cli -a $$REDIS_PASSWORD ping) = 'PONG' ]"
2024-12-12 22:12:00 +03:00
batcher:
build: ./batcher
2024-12-12 22:12:00 +03:00
depends_on:
redis: *healthy-dependency
batcher-postgres: *healthy-dependency
rabbitmq: *healthy-dependency
2024-12-12 22:12:00 +03:00
env_file:
- .env/dev/rmq
- .env/dev/redis
- .env/dev/batcher-pg
- .env/dev/batcher
- .env/dev/bot
- .env/dev/web
ports:
- '8080:8080'
batcher-postgres:
<<: *pg-conf
2024-12-12 22:12:00 +03:00
volumes:
- batcher_db_data:/var/lib/postgresql/data
env_file:
- .env/dev/batcher-pg
ports:
- '5433:5432'