我正在使用Jenkins管道(使用JHipster自动生成的管道脚本)构建Docker映像。我想将我的最终docker图像推送到Google容器注册表。
这是我所做的:
(嗯。项目符号后需要额外的文本行才能正确格式化)
docker.withRegistry('https://us.gcr.io', '[my-credential-id]') {
dockerImage.push 'latest'
}
但构建失败的原因是:
ERROR: Could not find credentials matching [my-credential-id]
Finished: FAILURE
我基本上相信这些插件在管道世界中不起作用,但我想问问是否有人已经做到了这一点,可以给我一些建议。
设置Google云注册表的其他方式可以如下所示,您可以在其中使用带有凭据的插件并使用文件凭据类型。
withCredentials([file(credentialsId: 'gcr-private-repo-reader', variable: 'GC_KEY')]){
sh '''
chmod 600 $GC_KEY
cat $GC_KEY | docker login -u _json_key --password-stdin https://eu.gcr.io
docker ps
docker pull eu.gcr.io/<reponame>/<image>
'''
}
以前的答案对我来说似乎不再有效了。这是对我有用的语法:
stage('Push Image') {
steps {
script {
docker.withRegistry('https://gcr.io', 'gcr:my-credential-id') {
dockerImage.push()
}
}
}
}
尝试用“gcr:”作为凭据ID的前缀。
您的凭证id看起来像“gcr:[我的凭证id]”。
完整的工作示例:
stage('Build image') {
app = docker.build("[id-of-your-project-as-in-google-url]/[name-of-the-artifact]")
}
stage('Push image') {
docker.withRegistry('https://eu.gcr.io', 'gcr:[credentials-id]') {
app.push("${env.BUILD_NUMBER}")
app.push("latest")
}
}
请注意图片的名称。在我将图片命名为[id of your project as in google url]/[name of the artifact]符号之前,我一直在努力推送图片,即使是使用工作凭证。
当你收到一条信息,你需要启用谷歌。。。。。。。API,你可能把你的[谷歌url中的项目id]搞错了。
图像现在可以成功地与eu的url一起使用。gcr。io/[google url中的项目id]/[artifact的名称]:47。
LZ
如果作业使用构建流(包括重复作业)运行,构建管道插件是否仍然正确显示作业序列? 以下是构建流程的伪代码: 包将从源代码控制中提取代码,编译它,并将其存储为工件 部署将从上游Package作业复制工件,然后将其复制到目标参数中提供的URL 集成测试将针对参数中提供的URL运行一套集成测试。 即使部署作业重复,构建管道插件是否将此管道显示为4个步骤?
问题内容: 通过使用詹金斯,我创建了一个“管道”类型的项目。然后将“ SCM管道”设置为。您可以检查我的GitHub存储库: 我想使用Jenkins管道构建docker映像。这是Jenkinsfile: Dockerfile也非常简单: 当我运行项目时。我收到以下错误: 这是完整的控制台输出 我检查了工作区: 测试 目录中什么都没有,但是Jenkinsfile和Dockerfile都在 test
通过使用jenkins,我创建了一个“管道”类型的项目。我设置了“来自SCM的管道”来获取< code>Jenkinsfile。你可以查看我的GitHub库: 我想使用 Jenkins 管道来构建一个 docker 映像。以下是 Jenkinsfile: Dockerfile文件也非常简单: 当我运行这个项目时。我得到以下错误: 这是完整的控制台输出 我检查了工作区: 测试目录中没有任何内容,但J
问题内容: 我正在尝试用一个使用Jenkins管道插件并从项目存储库加载a的新任务替换当前使用旧式Jenkins作业被黑客入侵的当前构建管道。 遗留作业所做的一件事是使用Description setter插件将构建说明设置为包含Mercurial哈希,用户名和当前版本,以便轻松查找构建。 有没有办法用Jenkins管道插件复制/模拟这种行为? 问题答案: 只是想通了。管道作业公开具有可写属性的全
问题内容: 我有一个Jenkins作为docker容器运行,现在我想使用管道构建Docker映像,但是Jenkins容器总是告诉未找到Docker。 这是我运行詹金斯图像的方式: Jenkins映像的DockerFile是:https : //github.com/jenkinsci/docker/blob/9f29488b77c2005bbbc5c936d47e697689f8ef6e/Dock