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