version: '3.8' services: db: image: mysql:8.0 container_name: kid-diary-db restart: always environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: kid_diary MYSQL_PASSWORD: kidpassword MYSQL_USER: kiduser ports: - "3306:3306" volumes: - db_data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-prootpassword"] interval: 10s timeout: 5s retries: 5 backend: build: context: ./backend dockerfile: Dockerfile container_name: kid-diary-backend restart: always ports: - "4000:4000" environment: - DATABASE_URL=mysql://kiduser:kidpassword@db:3306/kid_diary - PORT=4000 depends_on: db: condition: service_healthy env_file: - ./backend/.env.production frontend: build: context: ./frontend dockerfile: Dockerfile container_name: kid-diary-frontend restart: always ports: - "80:80" depends_on: - backend volumes: db_data: