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