[V10.4-D] 環境變數修復:POSTGRES_PASSWORD 注入 + fail-fast 守衛
Some checks failed
CD Pipeline / deploy (push) Failing after 1m6s

修復 H7(排程器/Telegram Bot 容器中 POSTGRES_PASSWORD 為空):

- docker-compose.yml: 移除 scheduler/telegram-bot 的 \${POSTGRES_*} environment
  插值行,僅保留 env_file: .env(與 188 主機已上線版本同步)
- config.py: USE_POSTGRESQL=true 時,POSTGRES_PASSWORD 空值立即 raise ValueError,
  避免無聲連線失敗(原本只在執行期出現 auth error)
- .env.example: 新增 GEMINI_API_KEY / GEMINI_MODEL / OPENCLAW_MODEL,
  附 Gemini 2.0 Flash EOL 2026-06-01 警告

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ogt
2026-04-25 01:43:43 +08:00
parent 5ef4151fa5
commit dc6597d36b
3 changed files with 20 additions and 8 deletions

View File

@@ -113,6 +113,14 @@ ELEPHANT_ALPHA_HERMES_MODEL=hermes3:latest
ELEPHANT_ALPHA_NEMOTRON_NIM_ENDPOINT=https://integrate.api.nvidia.com/v1
ELEPHANT_ALPHA_OPENCLAW_GEMINI_ENDPOINT=https://generativelanguage.googleapis.com/v1beta
# ── Google Gemini API ───────────────────────────────────────────────────────
# OpenClaw 策略師 / MCP Collector / Code Review Pipeline 共用金鑰
# 取得方式https://aistudio.google.com/app/apikey
# 注意Gemini 2.0 Flash 將於 2026-06-01 關閉,後續需遷移至 2.5 Flash
GEMINI_API_KEY=<change-me>
GEMINI_MODEL=gemini-1.5-flash
OPENCLAW_MODEL=gemini-2.5-flash-preview-05-20
# Debug and Monitoring
ELEPHANT_ALPHA_DEBUG_MODE=false
ELEPHANT_ALPHA_METRICS_ENABLED=true

View File

@@ -30,6 +30,16 @@ if USE_POSTGRESQL:
POSTGRES_PASSWORD = os.getenv('POSTGRES_PASSWORD')
POSTGRES_DB = os.getenv('POSTGRES_DB', 'momo_analytics')
# 檢查密碼是否設置
if not POSTGRES_PASSWORD:
raise ValueError(
f"❌ 資料庫密碼未設置!請檢查:\n"
f"1. .env 檔案中是否設置了 POSTGRES_PASSWORD\n"
f"2. Docker Compose 環境變數是否正確傳遞\n"
f"3. 容器重啟後環境變數是否生效\n"
f"當前環境變數USE_POSTGRESQL=true, POSTGRES_HOST={POSTGRES_HOST}, POSTGRES_USER={POSTGRES_USER}"
)
DATABASE_PATH = f"postgresql://{POSTGRES_USER}:{POSTGRES_PASSWORD}@{POSTGRES_HOST}:{POSTGRES_PORT}/{POSTGRES_DB}"
DATABASE_TYPE = 'postgresql'
else:

View File

@@ -226,12 +226,9 @@ services:
- PYTHONUNBUFFERED=1
- TZ=Asia/Taipei
# 資料庫設定: Docker 環境使用 PostgreSQL
# H7 (2026-04-24): POSTGRES_* 改由 env_file: .env 唯一來源,移除 compose 層插值避免空值覆蓋
- USE_POSTGRESQL=true
- POSTGRES_HOST=${POSTGRES_HOST:-postgres}
- POSTGRES_PORT=5432
- POSTGRES_USER=${POSTGRES_USER:-momo}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB:-momo_analytics}
# Embedding 服務bge-m3 on Hermes (ADR-003),永遠走內網免 auth
- EMBEDDING_HOST=${EMBEDDING_HOST:-http://192.168.0.111:11434}
env_file:
@@ -274,12 +271,9 @@ services:
- FLASK_ENV=production
- PYTHONUNBUFFERED=1
- TZ=Asia/Taipei
# H7 (2026-04-24): POSTGRES_* 改由 env_file: .env 唯一來源,移除 compose 層插值避免空值覆蓋
- USE_POSTGRESQL=true
- POSTGRES_HOST=${POSTGRES_HOST:-postgres}
- POSTGRES_PORT=5432
- POSTGRES_USER=${POSTGRES_USER:-momo}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB:-momo_analytics}
- EMBEDDING_HOST=${EMBEDDING_HOST:-http://192.168.0.111:11434}
env_file:
- .env