Gitea Actions Runtime 通用 Prompt 模板
GitHub/Gitea 生态里大批官方 Actions(如
actions/checkout@v4)基于 Node20 运行;自 2024 起官方将 Node16 迁移到 Node20。容器作业中,这个 Node 是在容器里找的,不在宿主机找,所以镜像必须自带。
你是一名资深 DevOps,请为“Gitea Actions Runner 容器作业(jobs.<id>.container)”生成一个通用的 Runtime Dockerfile。
## 约束(必须遵守)
1) 基础镜像:只允许二选一 —— [alpine | debian](禁止 ubuntu/其他发行版)
2) 运行时与基础工具(绝对不可省略,用于兼容主流 `uses:` Node 动作):
- Node.js >= 20(含 npm)
- git
3) 默认关闭健康检查(该镜像仅用于短生命周期的步骤执行)
4) 面向中文用户的默认环境:
- 时区:Asia/Shanghai
- UTF-8 编码:在所选发行版上正确配置(alpine 用 musl 的 C.UTF-8;debian 配置 locales)
## 选项(按需添加)
- 语言运行时(可选多选):[Python | Go | Java | …]
- 常用工具(兼容性强烈建议,尤其在 alpine):
- bash(大量 composite/脚本步骤需要)
- coreutils(GNU 语义避免 busybox 差异)
- curl / unzip / tar(常见下载与解包)
- 多版本支持:用 ARG 控制 [minimal | full]
- 构建优化:
- alpine 使用 `apk add --no-cache`
- debian 使用 `apt-get … && rm -rf /var/lib/apt/lists/*` + `--no-install-recommends`
- 合并 RUN,减少镜像层
## 输出要求
- 完整 Dockerfile(含必要注释),仅使用 [alpine|debian]
- 说明 minimal 与 full 的差异点(例如:full 额外包含 bash/coreutils/curl)
- 构建与推送命令(含 `--build-arg VARIANT=…` 的示例)
- 标签策略(如:`X.Y.Z-minimal`、`X.Y.Z-full`、`latest -> full`)
- 镜像体积优化建议与常见坑(Node 版本、bash 缺失、GNU 工具差异)
## 注意
- 请明确说明:在“容器作业”中,Node 动作会在容器内执行,因此容器必须自带 Node 20 与 npm 和 git。
快速备注(帮你写 Prompt 时的勾选清单)
- ☐ 基镜:alpine / debian(二选一)
- ☑ Node.js ≥ 20 + npm(必备)
- ☑ git(必备)
- ☐ bash / coreutils / curl / unzip / tar(建议至少 bash+coreutils)
- ☐ Python / Go / Java(按需)
- ☐
ARG VARIANT=minimal|full(多版本) - ☑ TZ=Asia/Shanghai,UTF-8 就绪
- ☑ 不写 HEALTHCHECK
- ☐ 提供 build/push/标签策略与体积建议