services: db: image: mysql:8.0 restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: onestopshop MYSQL_USER: app MYSQL_PASSWORD: app ports: - "3307:3306" volumes: - db_data:/var/lib/mysql - ./db/seed:/docker-entrypoint-initdb.d:ro healthcheck: test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -p$$MYSQL_ROOT_PASSWORD --silent"] interval: 5s timeout: 5s retries: 30 web: build: context: . dockerfile: Dockerfile depends_on: db: condition: service_healthy environment: NODE_ENV: development DATABASE_URL: ${DATABASE_URL:-mysql://app:app@db:3306/onestopshop} NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-http://localhost:3000} NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY:-} CLERK_SECRET_KEY: ${CLERK_SECRET_KEY:-} NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: ${NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY:-} STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY:-} STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET:-} UPLOADTHING_SECRET: ${UPLOADTHING_SECRET:-} UPLOADTHING_APP_ID: ${UPLOADTHING_APP_ID:-} ports: - "3000:3000" command: sh -lc "npm install --legacy-peer-deps && npm run dev" volumes: - .:/app - /app/node_modules - /app/.next volumes: db_data: