【发布时间】:2020-09-07 21:11:45
【问题描述】:
我正在尝试将构建的 docker 映像推送到私有注册表但遇到此错误:
Successfully built 6059208ca310
**Successfully tagged ubuntu:18.04**
[Pipeline] echo
Image Build
[Pipeline] isUnix
[Pipeline] sh
+ docker tag ubuntu:18.04 --build-arg PROXY_ADDRESS=http://proxy-random.net:3100 --build-arg my_image=ubuntu:18.04 x.some.com/ubuntu:18.04 --build-arg PROXY_ADDRESS=http://proxy-random.net:3100 --build-arg my_image=atpdml_pet_docker/ubuntu:ubuntu:18.04
"docker tag" requires exactly 2 arguments.
See 'docker tag --help'.
Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
[Pipeline] }
[Pipeline] // withDockerRegistry
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
虽然我没有在我的 pipeline.groovy 中的任何地方调用 docker 标签,但我想它是 push() 的一部分。我的 docker.build() 使用 --build-arg 并要求将标记的图像(在本例中使用名称 ubuntu:18.04 或标记 id 6059208ca310)推送到注册表。
def build_and_upload_image(dockerFileDir, imageName, imageTag) {
script {
dir(dockerFileDir) {
docker.withRegistry('https://some.com','key') {
def image = docker.build("${imageName}:${imageTag} --build-arg PROXY_ADDRESS=http://proxy-random.net:3100 --build-arg my_image=ubuntu:18.04")
echo 'Image Build'
image.push("ubuntu:18.04") ### even tried image.push()
image.push("latest")
echo 'image pushed'
}
}
}
}
pipeline {
agent{
label 'docker-build'
}
stages {
stage('Build format checker docker') {
steps {
build_and_upload_image("docker","ubuntu","18.04")
}
}
}
}
【问题讨论】: