| 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: |