← 文章 / 云原生与基础设施
vercel 4小时前 · 2026-09-26 06:09:38 · 2 阅读

从 GitHub Actions 推送镜像到 Vercel 容器注册表

现在,你可以从 GitHub Actions 推送容器镜像到Vercel Container Registry(VCR),而无需存储长期有效的仓库凭据。

新的 vercel/vcr-action/login Action 使用 GitHub OIDC 为你的工作流进行身份验证。它将工作流的 OIDC 令牌交换为短期有效的 Vercel 访问令牌,然后使用该令牌登录 vcr.vercel.com。当任务结束时,该 Action 会登出并吊销 Vercel 令牌。

开始步骤如下:

  • 在你的 Vercel 团队中创建一个OIDC 策略,使其匹配 GitHub 仓库和工作流,并授予 VCR 的读写权限。

  • 将你的 Vercel 团队 ID 存储为 GitHub 仓库变量,例如 VERCEL_TEAM_ID,同时包括镜像标签中使用的团队 slug、项目 slug 和仓库名称。

  • 为工作流或任务赋予 id-token: write 权限。

然后,在构建和推送镜像之前添加登录步骤:

1name: Push to VCR2
3on:4  push:5    branches: [main]6
7permissions:8  contents: read9  id-token: write10
11jobs:12  push:13    runs-on: ubuntu-latest14    steps:15      - uses: actions/checkout@v416
17      - uses: docker/setup-buildx-action@v318
19      - name: Log in to VCR20        uses: vercel/vcr-action/login@v121        with:22          team: ${{ vars.VERCEL_TEAM_ID }}23
24      - name: Build and push25        uses: docker/build-push-action@v626        with:27          context: .28          platforms: linux/amd6429          provenance: false30          tags: vcr.vercel.com/${{ vars.VERCEL_TEAM_SLUG }}/${{ vars.VERCEL_PROJECT_SLUG }}/${{ vars.VCR_REPOSITORY }}:latest31          outputs: type=image,push=true,oci-mediatypes=true,compression=zstd,compression-level=3,force-compression=true

通过 OIDC 进行身份验证,然后从 GitHub Actions 构建并推送容器镜像到 VCR。

该 Action 默认使用 Docker 进行身份验证。传入 engines 参数即可改用 Podman 或 Buildah。

当 VCR 完成 linux/amd64 镜像的准备后,你可以将其用作自定义的Vercel Sandbox 镜像。在同一项目中,参考格式为 <repository>:<tag>。

详情请参阅 VCR 文档和 GitHub Actions 指南。

原始来源: vercel

评论 (0)