使用 GitHub Actions 发布 Sandbox 模板

更新时间:
复制 MD 格式

Agent Sandbox极速版提供了官方 GitHub 模板仓库 aliyun-fc/fce2b-template-builder。从该模板创建自己的仓库后,只需要维护一个 Dockerfile,GitHub Actions 会自动完成:构建 linux/amd64 镜像并推送到你仓库的私有 GHCR、从该镜像构建 Sandbox 模板、创建 Sandbox 做冒烟校验,最后输出可直接使用的 Template ID。

与使用 GHCR 自定义镜像构建 Sandbox 模板相比,后者需要自己把镜像推送到 GHCR 再调用 SDK 构建模板;本文的方式把模板发布集成进 GitHub Actions,适合希望把模板定义纳入 Git 流程、随代码提交自动发布新模板版本的场景。

业务场景

  • 模板定义(Dockerfile 和依赖)与业务代码一起版本化管理,每次提交自动发布新的模板版本。

  • 团队成员不需要在本地安装 Docker 或 SDK,通过提交代码或在 GitHub 上手工触发即可完成发布。

  • 镜像保存在私有 GHCR 仓库,不允许匿名拉取,构建产物由自己的 GitHub 账号管控。

支持的地域

地域 Region
中国香港 cn-hongkong
新加坡 ap-southeast-1
美国(弗吉尼亚) us-east-1
美国(硅谷) us-west-1

API Key 按地域隔离,一次发布只面向一个地域。

前置条件

  • 已开通Agent Sandbox极速版,并获取目标地域的 API Key。

  • 拥有 GitHub 账号,且具备创建仓库的权限。

步骤一:创建自己的仓库

在 aliyun-fc/fce2b-template-builder 仓库页面右上角点击 Use this template,选择 Create a new repository。

创建仓库后,根据需要修改根目录的 Dockerfile。提交代码前,请确保 Dockerfile 可以构建 linux/amd64 镜像。

步骤二:创建 GitHub Token

创建一个 GitHub Personal Access Token (classic),并授予以下权限:

  • read:packages

  • write:packages

Token 所属用户必须对当前仓库及其 private GHCR package 具有读写权限。如果组织启用了 SSO,还需要为该 Token 完成组织授权。

步骤三:配置 GitHub Actions 凭据

进入仓库的 Settings → Secrets and variables → Actions。

在 Secrets 中添加:

名称 说明
FCE2B_API_KEY 目标地域的Agent Sandbox极速版 API Key。
GHCR_TOKEN 上一步创建的 GitHub Token。

在 Variables 中添加:

名称 示例 说明
FCE2B_REGION us-west-1 创建模板的目标地域。

修改 FCE2B_REGION 时,必须同时把 FCE2B_API_KEY 替换为该地域的 API Key。

步骤四:发布模板

使用以下任一方式触发发布:

  • 修改并提交 Dockerfile、依赖文件或 landing 目录中的文件到 master 分支;

  • 进入 Actions → Build fce2b template → Run workflow 手工触发。

一次完整执行通常需要约 1~3 分钟,实际时间取决于地域和镜像大小。

步骤五:获取发布结果

执行成功后,在对应的 GitHub Actions run 中查看:

  • Summary:Template ID、Build ID、Sandbox ID、镜像地址和验证结果;

  • Artifacts → landing-result:下载完整的 landing.json。

保存输出的 Template ID,后续即可使用 E2B SDK 通过该模板创建 Sandbox。

更新模板

修改 Dockerfile 或依赖后重新触发 workflow。每次成功发布都会生成新的 Template ID,不会覆盖之前的模板;需要回滚时继续使用旧的 Template ID 即可。

也可以通过 Git tag 发布带版本号的镜像:

git tag v1.0.0
git push origin v1.0.0

tag 推送后会自动构建 linux/amd64 镜像并发布到:

ghcr.io/<owner>/<repository>:v1.0.0

版本 tag 不会同时覆盖 latest。如需发布新版本,请创建新的 Git tag。

凭据维护

  • 不要把 FCE2B_API_KEY 或 GHCR_TOKEN 写入仓库文件、Dockerfile 或 Action 日志。

  • GHCR_TOKEN 必须保持有效,确保Agent Sandbox极速版能够继续读取你的私有 GHCR 镜像。

  • Token 轮换后,更新 GHCR_TOKEN 并重新发布模板。

  • API Key 轮换或切换地域后,更新 FCE2B_API_KEY 并重新发布模板。

常见问题

  • GHCR 登录或推送返回 401/403:检查 GHCR_TOKEN 是否具有 read:packages、write:packages 权限,以及 Token 所属用户是否能访问当前仓库。如果仓库属于组织,还需检查 SSO 授权。

  • API Key 被拒绝:检查 API Key 是否为目标地域的有效 Key,并确认它与 FCE2B_REGION 对应。

  • workflow 没有自动运行:自动触发仅监听 master 分支中的 Dockerfile、依赖、workflow 和 landing 相关文件,也可以在 Actions 页面手工运行。

  • 模板创建成功但后续无法拉取镜像:检查 GHCR package 是否保持 private、GHCR_TOKEN 是否过期,以及 Token 所属用户是否仍有 package 读取权限;更新 Token 后重新发布模板。

相关功能