services: postgres: image: ${POSTGRES_IMAGE:-postgres:16-alpine} restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-live_recorder} POSTGRES_USER: ${POSTGRES_USER:-live_recorder} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-change_me} volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-live_recorder} -d ${POSTGRES_DB:-live_recorder}"] interval: 10s timeout: 5s retries: 10 start_period: 10s api: image: ${REGISTRY_URL:-reg.nxsir.cn}/live_recorder/app-api:latest restart: unless-stopped depends_on: postgres: condition: service_healthy environment: ASPNETCORE_ENVIRONMENT: Production ASPNETCORE_URLS: http://+:8080 ConnectionStrings__DefaultConnection: Host=postgres;Port=5432;Database=${POSTGRES_DB:-live_recorder};Username=${POSTGRES_USER:-live_recorder};Password=${POSTGRES_PASSWORD:-change_me} volumes: - ./data:/app/data - ./records:/app/records expose: - "8080" nginx: image: ${REGISTRY_URL:-reg.nxsir.cn}/live_recorder/app-web:latest restart: unless-stopped depends_on: - api ports: - "${HTTP_PORT:-8080}:80" volumes: postgres-data: