You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions中基于平台用条件判断实现多镜像仓库登录?

实现GitHub Actions按平台区分镜像仓库登录

当然可以通过条件判断实现这个需求,GitHub Actions支持利用内置运行器变量结合if条件,针对不同架构执行对应的仓库登录逻辑。

方案1:拆分两个登录步骤(推荐,支持不同仓库独立配置密钥)

这种方式更灵活,能分别为quay.io和docker.io配置独立的认证密钥:

# 针对linux/amd64平台登录quay.io
- uses: docker/login-action@v2
  if: runner.os == 'Linux' && runner.arch == 'X64'
  with:
      registry: quay.io
      username: ${{ secrets.QUAY_USERNAME }}
      password: ${{ secrets.QUAY_TOKEN }}

# 针对linux/arm64平台登录docker.io
- uses: docker/login-action@v2
  if: runner.os == 'Linux' && runner.arch == 'ARM64'
  with:
      registry: docker.io
      username: ${{ secrets.DOCKER_USERNAME }}
      password: ${{ secrets.DOCKER_TOKEN }}

方案2:单步骤动态设置仓库(适用于密钥共用场景)

如果两个仓库使用相同的认证信息,可以通过表达式动态切换registry参数:

- uses: docker/login-action@v2
  with:
      registry: ${{ runner.arch == 'X64' && 'quay.io' || 'docker.io' }}
      username: ${{ secrets.COMMON_USER }}
      password: ${{ secrets.COMMON_TOKEN }}

变量说明

  • runner.os:判断运行系统,这里固定匹配Linux
  • runner.arch:判断CPU架构,X64对应linux/amd64,ARM64对应linux/arm64

内容的提问来源于stack exchange,提问作者sai deekshith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 22:47:48