Files
slipmatz-web/docker-compose.yml
Frank John Begornia 103101c5d9
Some checks failed
Deploy Production / deploy (push) Failing after 3m40s
feat: implement CI/CD workflows for Docker image build and deployment
2025-12-19 22:06:43 +08:00

53 lines
2.1 KiB
YAML

services:
slipmatz-web:
build:
context: .
dockerfile: Dockerfile
container_name: slipmatz-web
ports:
- "3000:3000"
environment:
- NODE_ENV=production
# Add your environment variables here
- NUXT_PUBLIC_FIREBASE_API_KEY=${NUXT_PUBLIC_FIREBASE_API_KEY}
- NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN=${NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN}
- NUXT_PUBLIC_FIREBASE_PROJECT_ID=${NUXT_PUBLIC_FIREBASE_PROJECT_ID}
- NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET=${NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET}
- NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=${NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID}
- NUXT_PUBLIC_FIREBASE_APP_ID=${NUXT_PUBLIC_FIREBASE_APP_ID}
- NUXT_PUBLIC_STORAGE_URL=${NUXT_PUBLIC_STORAGE_URL}
- NUXT_PUBLIC_BACKEND_URL=${NUXT_PUBLIC_BACKEND_URL}
- NUXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=${NUXT_PUBLIC_STRIPE_PUBLISHABLE_KEY}
- STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.slipmatz-web.rule=Host(`${DOMAIN:-slipmatz.com}`)"
- "traefik.http.routers.slipmatz-web.entrypoints=websecure"
- "traefik.http.routers.slipmatz-web.tls=true"
- "traefik.http.routers.slipmatz-web.tls.certresolver=le"
- "traefik.http.services.slipmatz-web.loadbalancer.server.port=3000"
# HTTP to HTTPS redirect
- "traefik.http.routers.slipmatz-web-http.rule=Host(`${DOMAIN:-slipmatz.com}`)"
- "traefik.http.routers.slipmatz-web-http.entrypoints=web"
- "traefik.http.routers.slipmatz-web-http.middlewares=https-redirect"
- "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
networks:
- traefik-public
- crew-app-net
- slipmatz-network
healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
traefik-public:
external: true
crew-app-net:
external: true
slipmatz-network:
driver: bridge