Files
wedding/docker-compose.prod.yml
arrelin 4ea8480c4c
All checks were successful
Build and Publish Images / build-and-push (push) Successful in 9s
admin
2026-03-06 18:27:54 +03:00

52 lines
1.8 KiB
YAML

services:
db:
image: postgres:17-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB:-wedding}
POSTGRES_USER: ${POSTGRES_USER:-wedding}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-wedding} -d ${POSTGRES_DB:-wedding}"]
interval: 5s
timeout: 5s
retries: 10
backend:
image: 192.168.31.100:3847/arrelin/wedding-backend:latest
environment:
DATABASE_URL: postgres://${POSTGRES_USER:-wedding}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB:-wedding}
PORT: 8080
RUST_LOG: ${RUST_LOG:-info}
depends_on:
db:
condition: service_healthy
restart: unless-stopped
labels:
- traefik.enable=true
- 'traefik.http.routers.wedding-backend.rule=Host(`weddinge.duckdns.org`) && PathPrefix(`/api`)'
- traefik.http.routers.wedding-backend.entrypoints=https
- traefik.http.routers.wedding-backend.tls=true
- traefik.http.routers.wedding-backend.tls.certresolver=letsencrypt
- traefik.http.services.wedding-backend.loadbalancer.server.port=8080
- traefik.http.routers.wedding-backend.priority=10
frontend:
image: 192.168.31.100:3847/arrelin/wedding-frontend:latest
depends_on:
- backend
restart: unless-stopped
labels:
- traefik.enable=true
- 'traefik.http.routers.wedding-frontend.rule=Host(`weddinge.duckdns.org`)'
- traefik.http.routers.wedding-frontend.entrypoints=https
- traefik.http.routers.wedding-frontend.tls=true
- traefik.http.routers.wedding-frontend.tls.certresolver=letsencrypt
- traefik.http.services.wedding-frontend.loadbalancer.server.port=80
- traefik.http.routers.wedding-frontend.priority=1
volumes:
postgres_data: