Files
calculate-version/Dockerfile
T
JefferyandClaude Opus 4.8 fdf33b41d8 fix(calculate-version): 修復 AI 審查的安全與健全性問題
- Dockerfile 移除 --no-check-certificate,恢復 TLS 憑證檢查以防中間人攻擊
- config 對 GITEA_SERVER_URL 加入 http/https URL 格式驗證
- logger.fail 改為 logger.error(僅輸出不終止行程),退出移至 index 頂層處理
- index.main 改用相依注入並於頂層攔截錯誤後 exit 1,避免 library 內呼叫 process.exit
- releases 將 response.text() 包入 try-catch 並附帶頁碼

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 10:52:19 +08:00

25 lines
1.1 KiB
Docker

# =============================================================================
# 用途: 建置 calculate-version Action 的容器映像。
# 以 Node.js 執行環境打包 /app 下的 Node.js 程式 (專案已從 bash 改寫為 Node.js),
# 並安裝 bash 以執行 entrypoint.sh,再由其啟動 Node.js 程式。
# 更新日期: 2026/06/26 10:28:36
# =============================================================================
# 基底映像:Node.js LTS 的 Alpine 版本 (體積小)。
FROM node:lts-alpine
# entrypoint.sh 以 bash 撰寫,Alpine 預設無 bash 需另行安裝
# --no-cache 不保留 apk 索引快取以縮小映像(保留 TLS 憑證檢查以防中間人攻擊)。
RUN apk add --no-cache bash
# 複製容器進入點腳本至根目錄。
COPY entrypoint.sh /entrypoint.sh
# 複製整個 app 目錄 (Node.js 程式) 至 /app。
COPY app/ /app/
# 賦予進入點腳本可執行權限,否則 ENTRYPOINT 無法執行。
RUN chmod +x /entrypoint.sh
# 設定容器啟動時執行的進入點 (內部會 exec node /app/index.js "$@")。
ENTRYPOINT ["/entrypoint.sh"]