services: postgres: image: postgres:16-alpine container_name: pve-manage-postgres restart: unless-stopped environment: POSTGRES_USER: cloud-manage POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-cloud-manage} POSTGRES_DB: cloud-manage volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U cloud-manage"] interval: 5s timeout: 5s retries: 5 networks: - pve-manage server: build: . image: pve-manage:latest container_name: pve-manage-server restart: unless-stopped command: - serve - -listen - :8080 - -db-url - postgres://cloud-manage:${POSTGRES_PASSWORD:-cloud-manage}@postgres:5432/cloud-manage?sslmode=disable - -config - /app/config/config.yaml - -oidc - /app/config/oidc.yaml - -token - /app/config/token.yaml ports: - "3030:8080" volumes: - ./config:/app/config:ro depends_on: postgres: condition: service_healthy networks: - pve-manage worker: build: . image: pve-manage:latest container_name: pve-manage-worker restart: unless-stopped command: - worker - -db-url - postgres://cloud-manage:${POSTGRES_PASSWORD:-cloud-manage}@postgres:5432/cloud-manage?sslmode=disable - -config - /app/config/config.yaml - -oidc - /app/config/oidc.yaml - -token - /app/config/token.yaml volumes: - ./config:/app/config:ro depends_on: postgres: condition: service_healthy networks: - pve-manage volumes: postgres-data: networks: pve-manage: name: pve-manage driver: bridge