重整 Dockerfile 為多階段六步流程並補齊專案文件 #14

Merged
admin merged 4 commits from ai-review-resolve/develop-20260630-121235 into develop 2026-06-30 04:33:05 +00:00
Member

變更摘要

本 PR 將 codex 映像專案標準化並補齊文件,分為四個提交:

  1. refactor(Dockerfile):將 Dockerfile 由單階段 ubuntu:latest 重整為「參數處理 → 安裝套件 → 複製檔案 → 執行程序 → 縮小映像檔 → 設定入口」六步流程,採多階段建置並改用 node:22-slim 基底縮小最終映像;可調參數集中於檔首 ARG,runtime 僅帶入 codex 套件與相依、ca-certificates
  2. docs(README 與 CD workflow):重建 README.md(專案列表、功能列表、使用範例),並為 Dockerfile.gitea/workflows/cd.yaml 補上「用途+更新日期」開頭區塊與逐行 # 註解。
  3. chore(CD workflow).gitea/workflows/cd.yaml 改用 Actions secretsvars 注入倉庫認證——以 vars.SERVER_DOMAIN(倉庫主機)、secrets.USERNAMEsecrets.PASSWORD 取代原本寫死的 job 層 env 區塊(含明碼帳號與 secrets.TOKEN)。
  4. docs(README 與 Dockerfile):同步 README.md 的 CI/CD 說明以對應上述 cd.yaml 新寫法(新增變數來源表與映像標籤格式),並更新 Dockerfile 檔首註解的更新日期。

影響範圍

檔案 異動性質
Dockerfile 映像建置結構重寫(多階段六步、node-slim 基底)+逐行註解
.gitea/workflows/cd.yaml CI 認證改用 secrets/vars 注入+逐行註解(指令邏輯僅憑證來源調整)
README.md 由空檔重建並同步 CI 說明

重點

  • 映像對外契約維持不變:CMD ["codex", "--version"]
  • CI 流程的觸發條件(push 到 master)、job 結構、build/push 行為不變,僅將倉庫主機與登入認證改為由 Actions varssecrets 提供,避免明碼帳號與固定 SERVER 寫死於檔案。
  • @openai/codex 維持不釘版本(latest)。

風險與注意事項

  • ⚠️ 基底映像變更:base 由 ubuntu:latest(apt nodejs)改為官方 node:22-slim,node 版本與來源改變,與原映像非位元等價;codex 若對 node 版本敏感請留意。
  • ⚠️ CI 變數需設定:cd.yaml 改用 vars.SERVER_DOMAINsecrets.USERNAMEsecrets.PASSWORD,請確認 Gitea repo/org 的 Actions 變數與密鑰已正確設定,否則 CD 會因缺值而失敗。
  • ⚠️ 未實機建置驗證:整理環境的 docker daemon 不可用,無法 docker build;yaml 語法已驗證合法。合併前請務必實機 docker builddocker run 確認映像可建置、容器能正常啟動。
## 變更摘要 本 PR 將 `codex` 映像專案標準化並補齊文件,分為四個提交: 1. **`refactor(Dockerfile)`**:將 `Dockerfile` 由單階段 `ubuntu:latest` 重整為「參數處理 → 安裝套件 → 複製檔案 → 執行程序 → 縮小映像檔 → 設定入口」六步流程,採多階段建置並改用 `node:22-slim` 基底縮小最終映像;可調參數集中於檔首 `ARG`,runtime 僅帶入 codex 套件與相依、`ca-certificates`。 2. **`docs(README 與 CD workflow)`**:重建 `README.md`(專案列表、功能列表、使用範例),並為 `Dockerfile`、`.gitea/workflows/cd.yaml` 補上「用途+更新日期」開頭區塊與逐行 `#` 註解。 3. **`chore(CD workflow)`**:`.gitea/workflows/cd.yaml` 改用 Actions `secrets`/`vars` 注入倉庫認證——以 `vars.SERVER_DOMAIN`(倉庫主機)、`secrets.USERNAME`、`secrets.PASSWORD` 取代原本寫死的 job 層 `env` 區塊(含明碼帳號與 `secrets.TOKEN`)。 4. **`docs(README 與 Dockerfile)`**:同步 `README.md` 的 CI/CD 說明以對應上述 cd.yaml 新寫法(新增變數來源表與映像標籤格式),並更新 `Dockerfile` 檔首註解的更新日期。 ## 影響範圍 | 檔案 | 異動性質 | | --- | --- | | `Dockerfile` | 映像建置結構重寫(多階段六步、node-slim 基底)+逐行註解 | | `.gitea/workflows/cd.yaml` | CI 認證改用 secrets/vars 注入+逐行註解(指令邏輯僅憑證來源調整) | | `README.md` | 由空檔重建並同步 CI 說明 | ## 重點 - 映像對外契約維持不變:`CMD ["codex", "--version"]`。 - CI 流程的觸發條件(push 到 `master`)、job 結構、build/push 行為不變,僅將倉庫主機與登入認證改為由 Actions `vars`/`secrets` 提供,避免明碼帳號與固定 `SERVER` 寫死於檔案。 - `@openai/codex` 維持不釘版本(latest)。 ## 風險與注意事項 - ⚠️ **基底映像變更**:base 由 `ubuntu:latest`(apt nodejs)改為官方 `node:22-slim`,node 版本與來源改變,與原映像**非位元等價**;codex 若對 node 版本敏感請留意。 - ⚠️ **CI 變數需設定**:cd.yaml 改用 `vars.SERVER_DOMAIN`、`secrets.USERNAME`、`secrets.PASSWORD`,請確認 Gitea repo/org 的 Actions 變數與密鑰已正確設定,否則 CD 會因缺值而失敗。 - ⚠️ **未實機建置驗證**:整理環境的 docker daemon 不可用,無法 `docker build`;yaml 語法已驗證合法。**合併前請務必實機 `docker build` 並 `docker run` 確認映像可建置、容器能正常啟動。**
jiantw83 added 2 commits 2026-06-30 04:14:41 +00:00
jiantw83 added 2 commits 2026-06-30 04:31:28 +00:00
admin merged commit 5a4459fb00 into develop 2026-06-30 04:33:05 +00:00
admin deleted branch ai-review-resolve/develop-20260630-121235 2026-06-30 04:33:05 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: images/codex#14