fix(version): /health 返回真实 commit SHA,不再是 unknown #2058

Merged
auto-approve-bot merged 1 commits from fix/app-version-inject into develop 2026-09-27 01:13:35 +08:00
Owner

问题

staging 部署后 GET /health 返回 version="unknown",Docker 构建时注入的 commit SHA 被 compose 默认值覆盖。

根因

infra/docker/compose.yml 里硬编码 APP_VERSION: ${APP_VERSION:-unknown},compose 启动时宿主机未设 APP_VERSION 就注入 unknown,覆盖 Dockerfile 里的 ENV APP_VERSION=。

修复

  1. 删除 compose.yml 两处 APP_VERSION 硬编码,让镜像 ENV APP_VERSION 自然生效;需要 override 时仍可通过 -e 传入。
  2. ci-pipeline.yml 去掉 EXTRA_BUILD_ARGS 中 APP_VERSION 值的多余转义引号。
## 问题 staging 部署后 GET /health 返回 version="unknown",Docker 构建时注入的 commit SHA 被 compose 默认值覆盖。 ## 根因 infra/docker/compose.yml 里硬编码 `APP_VERSION: ${APP_VERSION:-unknown}`,compose 启动时宿主机未设 APP_VERSION 就注入 unknown,覆盖 Dockerfile 里的 ENV APP_VERSION=<sha>。 ## 修复 1. 删除 compose.yml 两处 APP_VERSION 硬编码,让镜像 ENV APP_VERSION 自然生效;需要 override 时仍可通过 -e 传入。 2. ci-pipeline.yml 去掉 EXTRA_BUILD_ARGS 中 APP_VERSION 值的多余转义引号。
xiaoxia added 1 commit 2026-09-27 00:59:27 +08:00
fix(version): 让镜像构建时注入的 APP_VERSION (commit SHA) 正确生效
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m9s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m3s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m8s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m13s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m37s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m52s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 5m15s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 6m39s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 10m38s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 13m18s
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 2s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 8m21s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 34s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 4m20s
0958c3db1a
- infra/docker/compose.yml: 移除 environment 里 APP_VERSION=${APP_VERSION:-unknown} 硬编码默认值,
  避免 compose 启动时用 "unknown" 覆盖 Dockerfile ARG/ENV 注入的 commit SHA。
  未显式传 -e APP_VERSION 时,容器使用镜像 ENV(即构建时 --build-arg APP_VERSION=<sha> 的值);
  需要 override 时仍可通过 docker compose -e 或宿主机环境变量传入。
- .gitea/workflows/ci-pipeline.yml: 去掉 EXTRA_BUILD_ARGS 中 APP_VERSION 值的多余转义引号,
  避免 build-arg 把字面双引号注入版本号(之前 version 显示为 "\"abc123\"" 而非 "abc123")。

🚀 预览环境已部署

项目 详情
PR号 #2058
预览链接 https://pr-2058.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #2058 | | 预览链接 | [https://pr-2058.preview.xiaoxiajianji.com](https://pr-2058.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot merged commit 1463cf0834 into develop 2026-09-27 01:13:35 +08:00
auto-approve-bot deleted branch fix/app-version-inject 2026-09-27 01:13:37 +08:00

🗑️ 预览环境已清理

PR #2058 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #2058 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.