x-broker-environment: &broker-environment BROKER_URL: "amqp://${RABBITMQ_DEFAULT_USER}:${RABBITMQ_DEFAULT_PASS}@rabbitmq:5672" version: "3.8" name: whisperbox-transcribe services: traefik: image: "traefik:latest" restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock:ro depends_on: - web networks: - traefik rabbitmq: env_file: .env image: rabbitmq:3-alpine networks: - app deploy: resources: limits: memory: 256M healthcheck: test: rabbitmq-diagnostics check_port_connectivity interval: 3s timeout: 3s retries: 10 volumes: - ./conf/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf - rabbitmq-data:/var/lib/rabbitmq/mnesia/ worker: env_file: .env environment: <<: *broker-environment build: context: . dockerfile: worker.Dockerfile args: WHISPER_MODEL: ${WHISPER_MODEL} depends_on: rabbitmq: condition: service_healthy networks: - app web: env_file: .env environment: <<: *broker-environment build: context: . dockerfile: web.Dockerfile depends_on: rabbitmq: condition: service_healthy networks: - app - traefik networks: app: driver: bridge traefik: driver: bridge volumes: rabbitmq-data: