version: '3.8' # Production Docker Compose using Gitea Container Registry # # Usage: # 1. Build and push images: ./scripts/build-and-push.sh [version] # 2. Deploy: ./scripts/deploy.sh [version] # # Or manually: # docker login # docker-compose -f docker-compose.prod.registry.yml pull # docker-compose -f docker-compose.prod.registry.yml up -d # # Configuration: # - Set GITEA_HOST environment variable (default: git.zuyderland.nl) # - Set REPO_PATH environment variable (default: icmt/cmdb-gui) # - Update image tags below to match your Gitea registry path services: backend: image: ${GITEA_HOST:-git.zuyderland.nl}/${REPO_PATH:-icmt/cmdb-gui}/backend:latest environment: - NODE_ENV=production - PORT=3001 env_file: - .env.production volumes: - backend_data:/app/data restart: unless-stopped networks: - internal healthcheck: test: ["CMD", "node", "-e", "require('http').get('http://localhost:3001/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"] interval: 30s timeout: 10s retries: 3 start_period: 40s frontend: image: ${GITEA_HOST:-git.zuyderland.nl}/${REPO_PATH:-icmt/cmdb-gui}/frontend:latest depends_on: - backend restart: unless-stopped networks: - internal healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/"] interval: 30s timeout: 10s retries: 3 nginx: image: nginx:alpine ports: - "80:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/ssl:/etc/nginx/ssl:ro - nginx_cache:/var/cache/nginx depends_on: - frontend - backend restart: unless-stopped networks: - internal volumes: backend_data: nginx_cache: networks: internal: driver: bridge