services: gpt-register-lite: build: context: . dockerfile: Dockerfile image: gpt-register-lite:latest container_name: gpt-register-lite restart: unless-stopped ports: - "127.0.0.1:8000:8000" # 默认只绑本机,避免裸奔公网;要对外改成 "8000:8000" env_file: - path: .env required: false environment: # 这些也可以放 .env;放这里是为了给出默认值 HOST: "0.0.0.0" PORT: "8000" CM_TOKEN_CACHE_PATH: "/data/cm_token.json" PRODUCT_DIR: "/data/product_files" # sub2api 产出文件目录(挂卷持久化) REGISTER_DB_PATH: "/data/register_console.db" BATCH_RUN_ROOT: "/data/batch_runs" BATCH_PURGE_AFTER_UPLOAD: "${BATCH_PURGE_AFTER_UPLOAD:-1}" CONFIG_PATH: "/dev/null" # 纯环境变量配置,不挂 config.json SSO_CONNECTION_ID: "${SSO_CONNECTION_ID:-conn_xxxxxxxxxxxxxxxxxxxxxxxxxx}" SSO_BASE_URL: "${SSO_BASE_URL:-https://sso.example.com}" SSO_EMAIL_DOMAIN: "${SSO_EMAIL_DOMAIN:-example.com}" CODEX_SSO_JOIN_TEAM_FIRST: "${CODEX_SSO_JOIN_TEAM_FIRST:-false}" volumes: - cm_data:/data # 持久化 token 缓存 + SQLite DB + 批量任务产物 healthcheck: test: ["CMD", "python", "-c", "import urllib.request;urllib.request.urlopen('http://127.0.0.1:8000/healthz').read()"] interval: 30s timeout: 5s retries: 3 start_period: 5s volumes: cm_data: