services: mysql: image: mysql:8.4 restart: unless-stopped environment: MYSQL_DATABASE: ${DB_NAME} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} volumes: - mysql_data:/var/lib/mysql healthcheck: test: ["CMD-SHELL", "mysqladmin ping -h localhost -uroot -p$$MYSQL_ROOT_PASSWORD"] interval: 5s timeout: 5s retries: 20 backend: build: ./backend restart: unless-stopped depends_on: mysql: condition: service_healthy environment: DB_URL: jdbc:mysql://mysql:3306/${DB_NAME} DB_USERNAME: ${DB_USERNAME} DB_PASSWORD: ${DB_PASSWORD} CORS_ORIGINS: ${CORS_ORIGINS:-http://localhost} frontend: build: ./frontend restart: unless-stopped depends_on: - backend ports: - "80:80" volumes: mysql_data: