version: '3.8' services: # Database Service (MySQL) db: image: mysql:8.0 container_name: roms_mysql restart: always environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: roms_db MYSQL_USER: roms_user MYSQL_PASSWORD: roms_password ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql healthcheck: test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ] timeout: 20s retries: 10 # Backend Service backend: build: context: ./backend container_name: roms_backend restart: always environment: PORT: 5000 DATABASE_URL: mysql://roms_user:roms_password@db:3306/roms_db JWT_SECRET: supersecretjwtkey NODE_ENV: production # Add other env vars here ports: - "5000:5000" depends_on: db: condition: service_healthy networks: - app-network # Frontend Service frontend: build: context: ./frontend container_name: roms_frontend restart: always ports: - "80:80" depends_on: - backend networks: - app-network volumes: mysql_data: networks: app-network: driver: bridge