version: '3.8' services: mysql: image: mysql:8.0 container_name: mysql-auth restart: always environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: authdb MYSQL_USER: authuser MYSQL_PASSWORD: authpassword ports: - '3310:3306' volumes: - mysql_data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5 auth-service: image: node:20 container_name: auth-service restart: always environment: DB_HOST: mysql DB_PORT: 3306 DB_NAME: authdb DB_USER: authuser DB_PASSWORD: authpassword JWT_SECRET: supersecretkey volumes: - ./auth-service:/usr/src/app working_dir: /usr/src/app command: bash -c "npm install && npm start" depends_on: mysql: condition: service_healthy ports: - '3001:3000' mail-service: image: node:20 container_name: mail-service restart: always volumes: - ./mail-service:/usr/src/app working_dir: /usr/src/app command: bash -c "npm install && npm start" environment: DB_HOST: mysql DB_PORT: 3306 DB_NAME: authdb DB_USER: authuser DB_PASSWORD: authpassword ports: - '3002:3000' volumes: mysql_data: