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

如何解决Jenkins声明式流水线中Docker --tag标签仓库名需小写的报错

解决方案

你可以直接通过Groovy字符串内置的toLowerCase()方法将分支名转为全小写即可适配Docker镜像命名规则,修改后的Jenkinsfile参考如下:

pipeline {
  agent any
  stages {
    stage('Build') {
      steps {
        script {
          // 仅添加.toLowerCase()方法即可完成转小写
          def lowerBranch = env.BRANCH_NAME.toLowerCase()
          def app = docker.build("my_private_server/myapp/myapp-${lowerBranch}:${env.BUILD_ID}")
          withDockerRegistry(credentialsId: 'my-credentials', url: 'https://my_private_server.example.com') {
            app.push()
          }
        }
      }
    }
  }
}

你也可以直接在行内写为${env.BRANCH_NAME.toLowerCase()},无需额外定义变量。

优化建议(可选)

如果你的分支名可能包含Docker镜像名不允许的其他特殊字符(比如/、大写之外的特殊符号等),可以额外增加正则替换步骤,将非法字符统一替换为合法的连字符,进一步避免报错:

// 转小写同时替换所有非字母数字、-._的字符为连字符
def safeBranchName = env.BRANCH_NAME.toLowerCase().replaceAll('[^a-z0-9\\-._]', '-')
def app = docker.build("my_private_server/myapp/myapp-${safeBranchName}:${env.BUILD_ID}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:36:02