78 lines
1.9 KiB
YAML
78 lines
1.9 KiB
YAML
name: application-skeleton
|
|
|
|
services:
|
|
application:
|
|
build:
|
|
context: ../../
|
|
dockerfile: deploy/main/python.Dockerfile
|
|
image: ${APP_IMAGE}
|
|
container_name: application-skeleton-application
|
|
depends_on:
|
|
rabbitmq:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
command: [
|
|
"python", "-m", "entry.log_user_messages",
|
|
"--queue=application.skeleton",
|
|
"--exchange=amq.topic",
|
|
"--routing-key=user.message.*"
|
|
]
|
|
stop_grace_period: 3s
|
|
volumes:
|
|
- application-skeleton-data:/opt/app/data
|
|
environment:
|
|
- APP_NAME=${APP_NAME}
|
|
- APP_ENV=${APP_ENV}
|
|
- RABBITMQ_HOST=${RABBITMQ_HOST}
|
|
- RABBITMQ_PORT=${RABBITMQ_PORT}
|
|
- RABBITMQ_USER=${RABBITMQ_USER}
|
|
- RABBITMQ_PASS=${RABBITMQ_PASS}
|
|
- RABBITMQ_TIMEOUT=${RABBITMQ_TIMEOUT}
|
|
- RABBITMQ_VHOST=${RABBITMQ_VHOST}
|
|
- REDIS_HOST=${REDIS_HOST}
|
|
- REDIS_PORT=${REDIS_PORT}
|
|
- REDIS_DB=${REDIS_DB}
|
|
networks:
|
|
- application-skeleton-network
|
|
restart: unless-stopped
|
|
|
|
rabbitmq:
|
|
image: rabbitmq:4.3-management
|
|
container_name: application-skeleton-rabbitmq
|
|
environment:
|
|
RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
|
|
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASS}
|
|
healthcheck:
|
|
test: rabbitmq-diagnostics ping
|
|
interval: 3s
|
|
timeout: 5s
|
|
retries: 10
|
|
start_period: 10s
|
|
networks:
|
|
- application-skeleton-network
|
|
ports:
|
|
- "15672:15672"
|
|
|
|
redis:
|
|
image: redis:8-alpine
|
|
container_name: application-skeleton-redis
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 3s
|
|
timeout: 5s
|
|
retries: 10
|
|
start_period: 10s
|
|
networks:
|
|
- application-skeleton-network
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
application-skeleton-network:
|
|
external: false
|
|
|
|
volumes:
|
|
application-skeleton-data:
|
|
external: false
|
|
|