services: mysql: image: mysql:8.4 restart: unless-stopped environment: MYSQL_USER: jorgecuadros MYSQL_PASSWORD: jorgecuadros MYSQL_DATABASE: jorgecuadros MYSQL_ALLOW_EMPTY_PASSWORD: "no" MYSQL_RANDOM_ROOT_PASSWORD: "yes" ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "jorgecuadros", "-pjorgecuadros"] interval: 5s timeout: 5s retries: 10 api: build: context: . dockerfile: docker/api.Dockerfile restart: unless-stopped depends_on: mysql: condition: service_healthy environment: DATABASE_URL: mysql://jorgecuadros:jorgecuadros@mysql:3306/jorgecuadros SESSION_SECRET: ${SESSION_SECRET:?SESSION_SECRET must be set} WEB_ORIGIN: http://localhost:3000 PORT: 3001 ports: - "3001:3001" web: build: context: . dockerfile: docker/web.Dockerfile restart: unless-stopped depends_on: - api environment: NEXT_PUBLIC_API_ORIGIN: http://localhost:3001 ports: - "3000:3000" volumes: mysql_data: