services: db: image: postgres:17-alpine environment: POSTGRES_DB: ${POSTGRES_DB:-pnvpanel} POSTGRES_USER: ${POSTGRES_USER:-pnvpanel} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pnvpanel} volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-pnvpanel} -d ${POSTGRES_DB:-pnvpanel}'] interval: 5s timeout: 5s retries: 10 restart: unless-stopped app: build: context: . dockerfile: Dockerfile depends_on: db: condition: service_healthy environment: ASPNETCORE_ENVIRONMENT: Production ASPNETCORE_HTTP_PORTS: '8080' ConnectionStrings__Default: 'Host=db;Port=5432;Database=${POSTGRES_DB:-pnvpanel};Username=${POSTGRES_USER:-pnvpanel};Password=${POSTGRES_PASSWORD:-pnvpanel}' ports: - '8080:8080' restart: unless-stopped volumes: pgdata: