services: app: build: context: . dockerfile: Dockerfile ports: - "3500:3000" environment: - NODE_ENV=development - DATABASE_URL=${DATABASE_URL} - AUTH_URL=http://localhost:3500 - NEXTAUTH_URL=http://localhost:3500 - NEXTAUTH_SECRET=${NEXTAUTH_SECRET} - AUTH_SECRET=${AUTH_SECRET} - AUTH_TRUST_HOST=true restart: unless-stopped depends_on: - db-check networks: - app-network # Health check service to ensure MySQL is accessible db-check: image: mysql:8.0 command: > sh -c " until mysqladmin ping -h$${DB_HOST} -P$${DB_PORT} -u$${DB_USER} -p$${DB_PASSWORD} --silent; do echo 'Waiting for MySQL...'; sleep 2; done; echo 'MySQL is ready!'; " environment: - DB_HOST=${DB_HOST:-localhost} - DB_PORT=${DB_PORT:-3306} - DB_USER=${DB_USER:-root} - DB_PASSWORD=${DB_PASSWORD} networks: - app-network networks: app-network: driver: bridge