services: progress-monitor: build: . restart: unless-stopped ports: - "127.0.0.1:${PPM_PORT:-8000}:8000" environment: PPM_DATA_DIR: /app/data PPM_LAYOUT_DIR: /app/config/layouts PPM_PASSWORD_HASH: ${PPM_PASSWORD_HASH:-} PPM_PASSWORD: ${PPM_PASSWORD:-} PPM_COOKIE_SECURE: ${PPM_COOKIE_SECURE:-true} # 生产默认 fail-secure:不配置密码则拒绝启动。 # 不要在生产环境打开 PPM_ALLOW_NO_AUTH,仅本地联调可用。 PPM_ALLOW_NO_AUTH: ${PPM_ALLOW_NO_AUTH:-false} volumes: - ppm-data:/app/data - ./config/layouts:/app/config/layouts:ro healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/api/health')"] interval: 30s timeout: 5s retries: 3 volumes: ppm-data: