我正在尝试制作一个詹金斯管道,从 git 克隆代码并构建一个 docker 镜像,然后将其推送到 nexus 注册表 这就是我的詹金斯文件中的内容:
pipeline{
agent any
environment{
DOCKERHUB_CREDENTIALS=credentials('docker_hub')
NEXUS_CREDENTIALS = credentials('nexus')
}
stages{
stage('Build'){
steps{
sh 'docker build -t my-app .'
}
}
stage('Login'){
steps{
sh 'echo $NEXUS_CREDENTIALS_PSW | docker login -u $NEXUS_CREDENTIALS_USR --password-stdin http://localhost:8095/repository/docker-private-repo/'
}
}
stage('Push'){
steps{
sh 'docker tag my-app:latest http://localhost:8095/docker-private-repo/my-app:latest'
sh 'docker push http://localhost:8095/docker-private-repo/my-app:latest'
}
}
}
post{
always{
sh 'docker logout'
}
}
}
对于使用管道 SCM 克隆 git 代码,无论如何,构建阶段和登录阶段工作正常,但对于推送阶段,我收到此错误“错误解析参考:”http://localhost:8095/docker-private-repo/ my-app:latest“不是有效的存储库/标签:无效的参考格式”我不知道标签命令有什么问题?我该如何解决这个问题?
我必须从网址中删除
https://
,现在它工作正常
这可能是一个更小众的答案,但在我们的例子中,问题与此更改有关,这是一个重大更改(但唯一的事情是您需要将变量更新为当前的等效项):删除已弃用的预定义 CI_BUILD_ GitLab 中的变量*。
在我们的具体情况中,在之前的版本 8.x 中,我们有
CI_BUILD_TAG
,而在当前版本 9.0+ 中,我们有 CI_COMMIT_TAG
。
更多详情请点击这里: 后端:删除已弃用的预定义 CI_BUILD_* 变量