refactor(release-cleanup): 將清理邏輯由 bash 改寫為 Node.js 模組
依功能分組為 logger/validate/config/gitea-client/releases/tags 模組, entrypoint.sh 改為呼叫 node /app/index.js,Dockerfile 改用 node:20-alpine 基底。 對外行為(清理舊 release 與未指定 release 的 tag)維持不變。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
b478872c5f
commit
b1aa8730a2
+16
-4
@@ -1,10 +1,22 @@
|
||||
FROM alpine:latest
|
||||
# =============================================================================
|
||||
# 用途: 建置 release-cleanup Action 的容器映像。
|
||||
# 以 Node.js 執行環境打包 /app 下的 Node.js 程式 (專案已從 bash 改寫為 Node.js),
|
||||
# 並透過 entrypoint.sh 啟動。
|
||||
# 更新日期: 2026/06/26 10:28:36
|
||||
# =============================================================================
|
||||
|
||||
# 安裝必要的工具
|
||||
RUN apk add --no-cache --no-check-certificate bash curl jq
|
||||
# 基底映像:Node.js 20 的 Alpine 版本 (體積小)。
|
||||
FROM node:20-alpine
|
||||
|
||||
# 複製 Node.js 應用程式(不含測試)
|
||||
# 先單獨複製 package.json,再複製所有 *.js;有利於 Docker layer 快取。
|
||||
COPY app/package.json /app/package.json
|
||||
COPY app/*.js /app/
|
||||
|
||||
# 複製容器進入點腳本至根目錄。
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
|
||||
# 賦予進入點腳本可執行權限,否則 ENTRYPOINT 無法執行。
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
# 設定容器啟動時執行的進入點 (內部會 exec node /app/index.js)。
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
|
||||
Reference in New Issue
Block a user