# ================================================================ # OPTIMIZED DOCKER COMPOSE - NO ENVIRONMENT DUPLICATION # Single source of truth: .env file only # ================================================================ # ================================================================ # NETWORKS & VOLUMES (same as before) # ================================================================ networks: bakery-network: driver: bridge ipam: config: - subnet: 172.20.0.0/16 volumes: auth_db_data: training_db_data: forecasting_db_data: sales_db_data: external_db_data: tenant_db_data: notification_db_data: inventory_db_data: recipes_db_data: suppliers_db_data: pos_db_data: orders_db_data: production_db_data: alert_processor_db_data: redis_data: rabbitmq_data: prometheus_data: grafana_data: model_storage: log_storage: nominatim_data: frontend_node_modules: # ================================================================ # SERVICES - USING ONLY .env FILE # ================================================================ services: # ================================================================ # INFRASTRUCTURE - NO DUPLICATION # ================================================================ redis: image: redis:7.4-alpine container_name: bakery-redis restart: unless-stopped # ONLY use environment substitution from .env command: > redis-server --appendonly yes --requirepass ${REDIS_PASSWORD} --maxmemory ${REDIS_MAX_MEMORY:-512mb} --databases 16 ports: - "${REDIS_PORT}:6379" volumes: - redis_data:/data networks: bakery-network: ipv4_address: 172.20.0.10 healthcheck: test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"] interval: 30s timeout: 10s retries: 3 rabbitmq: image: rabbitmq:4.1-management-alpine container_name: bakery-rabbitmq restart: unless-stopped # ONLY use environment substitution from .env environment: - RABBITMQ_DEFAULT_USER=${RABBITMQ_USER} - RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD} - RABBITMQ_DEFAULT_VHOST=${RABBITMQ_VHOST} ports: - "${RABBITMQ_PORT}:5672" - "${RABBITMQ_MANAGEMENT_PORT}:15672" volumes: - rabbitmq_data:/var/lib/rabbitmq networks: bakery-network: ipv4_address: 172.20.0.11 healthcheck: test: ["CMD", "timeout", "5", "bash", "-c", "