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

Jenkins流水线中Helm登录Harbor后拉取OCI镜像报401未授权求助

解决Jenkins流水线中Helm拉取OCI Chart 401 Unauthorized的方案

以下是几个可行的解决方案,针对登录状态无法保持的问题:

方案1:将登录与拉取操作放在同一个Shell上下文

Jenkins的每个sh步骤会启动独立的Shell进程,登录状态无法跨进程共享。把登录和拉放命令合并到同一个sh块中:

usernamePassword(credentialsId: 'HarborCredentials', 
                 passwordVariable: 'PASSWORD_VAR', 
                 usernameVariable: 'USERNAME') {
    sh """
        helm registry login -u $USERNAME -p $PASSWORD_VAR mydomain
        helm pull oci://mydomain/helm-charts/pxc-operator --version 1.14.0
    """
}

方案2:手动指定Helm配置目录持久化凭据

Helm默认将登录凭据存储在用户家目录的.helm文件夹中,Jenkins Agent的家目录可能在构建后重置或存在权限问题。手动指定配置目录到工作区,确保凭据可复用:

usernamePassword(credentialsId: 'HarborCredentials', 
                 passwordVariable: 'PASSWORD_VAR', 
                 usernameVariable: 'USERNAME') {
    sh """
        mkdir -p ./helm-config
        helm registry login -u $USERNAME -p $PASSWORD_VAR mydomain --config ./helm-config/config.yaml
        helm pull oci://mydomain/helm-charts/pxc-operator --version 1.14.0 --config ./helm-config/config.yaml
    """
}

方案3:复用Docker登录凭据

Harbor同时支持Docker镜像和OCI Helm Chart,Helm可以复用Docker的登录配置文件(~/.docker/config.json)。先完成Docker登录,再让Helm读取该配置:

usernamePassword(credentialsId: 'HarborCredentials', 
                 passwordVariable: 'PASSWORD_VAR', 
                 usernameVariable: 'USERNAME') {
    sh """
        docker login -u $USERNAME -p $PASSWORD_VAR mydomain
        helm pull oci://mydomain/helm-charts/pxc-operator --version 1.14.0 --registry-config ~/.docker/config.json
    """
}

方案4:通过Jenkins全局配置预配置Helm仓库

在Jenkins全局层面配置Helm仓库及凭据,避免流水线中手动处理登录:

  1. 进入Jenkins 系统管理 → 全局工具配置
  2. 找到Helm配置区域,点击「添加Helm仓库」
  3. 填写仓库名称、OCI地址(oci://mydomain/helm-charts),选择HarborCredentials凭据并保存
  4. 流水线中直接使用仓库别名拉取Chart:
sh "helm pull myrepo/pxc-operator --version 1.14.0"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 06:05:04