Jenkins docker build step插件无法将图像推送到docker云

Jenkins docker build step插件无法将图像推送到docker云,docker,jenkins,jenkins-plugins,jenkins-pipeline,continuous-deployment,Docker,Jenkins,Jenkins Plugins,Jenkins Pipeline,Continuous Deployment,我正在尝试使用docker build step插件与Jenkins一起构建图像并将其推送到docker cloud。使用Jenkins密码管理器插件添加docker hub的密码 我分两步来做这件事。第一步使用Build/Create Image命令。该命令生成图像并用生成ID标记它 第二步将图像推送到docker hub。以下是控制台跟踪: [Docker] INFO: Build image id:5240329f9db6 [Docker] INFO: Pushing image part

我正在尝试使用
docker build step
插件与Jenkins一起构建图像并将其推送到docker cloud。使用Jenkins密码管理器插件添加docker hub的密码

我分两步来做这件事。第一步使用
Build/Create Image
命令。该命令生成图像并用生成ID标记它

第二步将图像推送到docker hub。以下是控制台跟踪:

[Docker] INFO: Build image id:5240329f9db6
[Docker] INFO: Pushing image parthmodi/docker_demo:test_push
[Docker] INFO: PushResponseItem[stream=<null>,status=The push refers to a repository [docker.io/parthmodi/docker_demo],progressDetail=<null>,progress=<null>,id=<null>,from=<null>,time=<null>,errorDetail=<null>,error=<null>,aux=<null>]
[Docker]信息:构建映像id:5240329f9db6
[Docker]信息:推送图像部分Modi/Docker\u演示:测试\u推送
[Docker]INFO:PushResponseItem[stream=,status=推送引用存储库[Docker.io/parthmodi/Docker\u demo],progressDetail=,progress=,id=,from=,time=,errorDetail=,error=,aux=]

[Docker]INFO:PushResponseItem[stream=,status=,progressDetail=,progressDetail=,progress=,id=,from=,time=,errorDetail=ResponseItem.errorDetail[code=,message=denied:请求的资源访问被拒绝],error=denied:请求的资源访问被拒绝,aux=]
错误:生成步骤失败,出现异常
com.github.dockerjava.api.exception.DockerClientException:无法推送映像:拒绝:请求的资源访问被拒绝
在com.github.dockerjava.core.command.PushImageResultCallback.waitSuccess(PushImageResultCallback.java:49)上
位于org.jenkinsci.plugins.dockerbuildstep.cmd.PushImageCommand.execute(PushImageCommand.java:81)
位于org.jenkinsci.plugins.dockerbuildstep.DockerBuilder.perform(DockerBuilder.java:74)
在hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
位于hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:736)
位于hudson.model.Build$BuildExecution.Build(Build.java:206)
位于hudson.model.Build$BuildExecution.doRun(Build.java:163)
位于hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:496)
在hudson.model.Run.execute(Run.java:1737)
运行(FreeStyleBuild.java:43)
在hudson.model.ResourceController.execute(ResourceController.java:97)
运行(Executor.java:421)
生成步骤“执行Docker命令”将生成标记为失败
完成:失败
以下是完整的跟踪:

为什么将图像推送到Docker注册表时出现
无法推送图像:被拒绝:请求的资源访问被拒绝
错误,我该如何解决

试试这个

stage('build and publish'){
def dockerImage = docker.build('dockerImageName')
docker.withRegistry(RegistryURL, CredentialID) {
       dockerImage.push('latest')
}
}

也有和OP类似的问题,但有RamKamath的代码示例。问题在于我传递给docker.withRegistry的注册表URL不正确。我把它作为
https://index.docker.io/v2/
但凭证是针对
https://index.docker.io/v1/
API.

如果它的私有dockerhub repo带有用户名和密码,那么你必须将其传递给jenkins,如何以及在何处使用此脚本?上述答案是否有帮助?
stage('build and publish'){
def dockerImage = docker.build('dockerImageName')
docker.withRegistry(RegistryURL, CredentialID) {
       dockerImage.push('latest')
}
}