services: api: build: . command: node server.js env_file: .env environment: DB_HOST: mysql REDIS_HOST: redis ports: - "${PORT:-3070}:${PORT:-3070}" depends_on: mysql: condition: service_healthy redis: condition: service_healthy worker: build: . command: node app/workers/index.js env_file: .env environment: DB_HOST: mysql REDIS_HOST: redis RUN_CRON: "false" depends_on: mysql: condition: service_healthy redis: condition: service_healthy mysql: image: mysql:8.4 environment: MYSQL_DATABASE: ${DB_NAME} MYSQL_USER: ${DB_USER} MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} volumes: - mysql-data:/var/lib/mysql healthcheck: test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -u root -p$$MYSQL_ROOT_PASSWORD --silent"] interval: 10s timeout: 5s retries: 10 redis: image: redis:7.4-alpine command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}"] volumes: - redis-data:/data healthcheck: test: ["CMD-SHELL", "redis-cli -a $$REDIS_PASSWORD ping | grep PONG"] interval: 10s timeout: 5s retries: 10 volumes: mysql-data: redis-data: