如何在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:判断运行系统,这里固定匹配Linuxrunner.arch:判断CPU架构,X64对应linux/amd64,ARM64对应linux/arm64
内容的提问来源于stack exchange,提问作者sai deekshith
相关产品推荐
相关产品推荐

