fix(worker): ffmpeg下载脚本改为纯sh兼容,修复dash数组语法错误 #688

Merged
auto-approve-bot merged 1 commits from fix/worker-ffmpeg-sh-compat into develop 2026-07-21 20:20:56 +08:00
Owner

问题(紧急修复)

#686 引入了 bash 数组语法 FFMPEG_SOURCES=(...),但 worker 基础镜像的 /bin/sh 是 dash,不支持数组语法,导致 Worker Build 直接报错:

Syntax error: "(" unexpected

修复

  • 移除 bash 数组,改用纯 sh 兼容的 for src in "url1" "url2" "url3"; do 写法
  • 所有语法保持 POSIX sh 兼容,确保 dash 下能正常运行
  • 保留所有原有功能:三源重试、tar 完整性校验、坏包自动清缓存、二进制可执行校验

教训

  • Dockerfile 的 RUN 默认用 /bin/sh,不是 bash,写复杂 shell 时必须用纯 sh 语法
  • 后续新 PR 的 Worker Build 应该清缓存跑一次,避免缓存掩盖问题
## 问题(紧急修复) #686 引入了 bash 数组语法 `FFMPEG_SOURCES=(...)`,但 worker 基础镜像的 `/bin/sh` 是 dash,不支持数组语法,导致 Worker Build 直接报错: ``` Syntax error: "(" unexpected ``` ## 修复 - 移除 bash 数组,改用纯 sh 兼容的 `for src in "url1" "url2" "url3"; do` 写法 - 所有语法保持 POSIX sh 兼容,确保 dash 下能正常运行 - 保留所有原有功能:三源重试、tar 完整性校验、坏包自动清缓存、二进制可执行校验 ## 教训 - Dockerfile 的 RUN 默认用 /bin/sh,不是 bash,写复杂 shell 时必须用纯 sh 语法 - 后续新 PR 的 Worker Build 应该清缓存跑一次,避免缓存掩盖问题
xiaoxia added 1 commit 2026-07-21 20:17:31 +08:00
fix(worker): ffmpeg下载脚本改为纯sh兼容,修复dash数组语法错误
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 / 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 / Build Production API Image (pull_request) Has been skipped
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 / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 26s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 40s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 1m25s
AI Code Review / AI Code Review (pull_request) Successful in 2m10s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m15s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m23s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m16s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m4s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m24s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 20s
b371e484fb
问题:#686引入了bash数组语法 FFMPEG_SOURCES=(...),但worker基础镜像
的/bin/sh是dash,不支持数组,导致Worker Build报
Syntax error: "(" unexpected

修复:
- 移除数组,改用 for src in "url1" "url2" "url3"; do 的纯sh写法
- 所有语法保持POSIX sh兼容,确保dash下能正常运行
- 保留所有原有功能:三源重试、tar校验、坏包清缓存、二进制校验

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #688 | | 预览链接 | [https://pr-688.preview.xiaoxiajianji.com](https://pr-688.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
Collaborator

代码审查结果 - PR #688

⚠️ 问题(0个需要修改)

💡 建议(0个可选)


格式检查通过 | 逻辑审查通过 | 性能无需关注


🤖 由 AI 代码审查机器人自动生成 | 2026-07-21 20:19:41 | 模型:

## 代码审查结果 - PR #688 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议(0个可选) 无 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能无需关注 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-21 20:19:41 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
auto-approve-bot approved these changes 2026-07-21 20:19:55 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-21 20:19:55 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot merged commit c424ffcc66 into develop 2026-07-21 20:20:56 +08:00
auto-approve-bot deleted branch fix/worker-ffmpeg-sh-compat 2026-07-21 20:20:56 +08:00

🗑️ 预览环境已清理

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

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

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