services: mysql: image: mariadb:10.11 container_name: mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-Ase@2025} MYSQL_DATABASE: ${MYSQL_DATABASE:-ase_lar} MYSQL_USER: ${MYSQL_USER:-ase_lar} MYSQL_PASSWORD: ${MYSQL_PASSWORD:-ase_lar} volumes: - mysql_data:/var/lib/mysql networks: - app-network ports: - "3306:3306" healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 3 labels: logging: "promtail" logging_jobname: "mysql" redis: image: redis:7-alpine container_name: redis-master restart: unless-stopped command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD:-Ase@2025} volumes: - redis_data:/data networks: - app-network ports: - "6379:6379" labels: logging: "promtail" orchestrator-1-load: build: . container_name: orchestrator-1-load restart: unless-stopped command: ["python", "-m", "src.load_orchestrator"] environment: DB_HOST: ${VIP:-192.168.1.210} REDIS_HOST: ${VIP:-192.168.1.210} ORCHESTRATOR_ID: 1 volumes: - app-logs:/app/logs networks: - app-network labels: logging: "promtail" orchestrator-2-elab: build: . container_name: orchestrator-2-elab restart: unless-stopped command: ["python", "-m", "src.elab_orchestrator"] environment: DB_HOST: ${VIP:-192.168.1.210} REDIS_HOST: ${VIP:-192.168.1.210} ORCHESTRATOR_ID: 2 volumes: - app-logs:/app/logs networks: - app-network labels: logging: "promtail" orchestrator-3-send: build: . container_name: orchestrator-3-send restart: unless-stopped command: ["python", "-m", "src.send_orchestrator"] environment: DB_HOST: ${VIP:-192.168.1.210} REDIS_HOST: ${VIP:-192.168.1.210} ORCHESTRATOR_ID: 3 volumes: - app-logs:/app/logs networks: - app-network labels: logging: "promtail" ftp-server-1: build: . container_name: ftp-server-1 restart: unless-stopped command: ["python", "-m", "src.ftp_csv_receiver"] environment: DB_HOST: ${VIP:-192.168.1.210} REDIS_HOST: ${VIP:-192.168.1.210} FTP_INSTANCE_ID: 1 volumes: - app-logs:/app/logs networks: - app-network expose: - "21" labels: logging: "promtail" haproxy: image: haproxy:2.8-alpine container_name: haproxy restart: unless-stopped volumes: - ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro networks: - app-network ports: - "21:21" - "30000-30009:30000-30009" - "8404:8404" keepalived: image: osixia/keepalived:2.0.20 container_name: keepalived restart: unless-stopped cap_add: - NET_ADMIN network_mode: host environment: KEEPALIVED_PRIORITY: 100 KEEPALIVED_VIRTUAL_IPS: "${VIP:-192.168.1.210}" promtail: image: grafana/promtail:2.9.3 container_name: promtail restart: unless-stopped volumes: - ./promtail-config.yml:/etc/promtail/config.yml:ro - /var/run/docker.sock:/var/run/docker.sock:ro networks: - app-network networks: app-network: volumes: mysql_data: redis_data: app-logs: