# ============================================================================= # 用途: 建置 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"]