fix: 部署脚本 worker health-cmd 中 $pid 未转义导致 staging 部署失败回滚
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 25s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 25s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 1m6s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m19s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m56s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m42s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m5s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 6m30s
AI Code Review / AI Code Review (pull_request) Successful in 6m34s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 10m59s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 23m1s
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 5s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m9s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 184h43m45s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 184h43m46s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 184h43m46s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 185h6m27s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 185h6m27s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 185h6m28s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 185h6m38s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 185h6m38s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 185h6m45s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 185h6m43s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 185h6m45s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 185h6m44s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 185h6m46s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 185h6m48s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 185h6m51s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 185h18m31s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 185h18m33s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 185h41m19s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 185h41m30s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 25s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 25s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 1m6s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m19s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m56s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m42s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m5s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 6m30s
AI Code Review / AI Code Review (pull_request) Successful in 6m34s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 10m59s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 23m1s
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 5s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m9s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 184h43m45s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 184h43m46s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 184h43m46s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 185h6m27s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 185h6m27s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 185h6m28s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 185h6m38s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 185h6m38s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 185h6m45s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 185h6m43s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 185h6m45s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 185h6m44s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 185h6m46s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 185h6m48s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 185h6m51s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 185h18m31s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 185h18m33s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 185h41m19s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 185h41m30s
ci_staging_deploy.sh 开启 set -eu,worker 容器 --health-cmd 双引号内的 $pid 被外层部署脚本提前展开(pid 未定义)→ 'pid: parameter not set' → worker 容器 docker run 失败 → 判定部署失败并自动回滚。 将 health-cmd 内 $pid 转义为 \$pid,使其透传到容器内由 healthcheck shell 展开(for pid in /proc/[0-9]*/cmdline)。回滚段(195行)与主部署段(504行) 两处一并修复。 🤖 Generated with [Claude Code](https://claude.com/claude-code)
This commit is contained in:
@@ -192,7 +192,7 @@ rollback() {
|
||||
-e PUBLIC_API_BASE_URL=https://staging-api.xiaoxiajianji.com \
|
||||
-v "$GENERATED_DIR:/app/generated" \
|
||||
--restart unless-stopped \
|
||||
--health-cmd "sh -c \"for pid in /proc/[0-9]*/cmdline; do if grep -ql celery \"$pid\" 2>/dev/null; then exit 0; fi; done; exit 1\"" \
|
||||
--health-cmd "sh -c \"for pid in /proc/[0-9]*/cmdline; do if grep -ql celery \"\$pid\" 2>/dev/null; then exit 0; fi; done; exit 1\"" \
|
||||
--health-interval 30s \
|
||||
--health-timeout 10s \
|
||||
--health-retries 3 \
|
||||
@@ -501,7 +501,7 @@ docker run -d \
|
||||
-e PUBLIC_API_BASE_URL=https://staging-api.xiaoxiajianji.com \
|
||||
-v "$GENERATED_DIR:/app/generated" \
|
||||
--restart unless-stopped \
|
||||
--health-cmd "sh -c \"for pid in /proc/[0-9]*/cmdline; do if grep -ql celery \"$pid\" 2>/dev/null; then exit 0; fi; done; exit 1\"" \
|
||||
--health-cmd "sh -c \"for pid in /proc/[0-9]*/cmdline; do if grep -ql celery \"\$pid\" 2>/dev/null; then exit 0; fi; done; exit 1\"" \
|
||||
--health-interval 30s \
|
||||
--health-timeout 10s \
|
||||
--health-retries 3 \
|
||||
|
||||
Reference in New Issue
Block a user