在openshift中部署修改后的Jenkins图片失败

问题描述:

我在我的openshift中使用“jenkins-1-centos7”图像在我的jenkins图像上运行项目。 它成功地工作,并在许多配置后,我从这詹金斯容器中复制出一个新的图像。 现在我想使用这个图像作为进一步开发的基础,但是在这个图像上部署一个窗格会失败并显示错误“ErrImagePull”。在openshift中部署修改后的Jenkins图片失败

在我的调查中,我发现openshift需要镜像存在于docker注册表中才能成功部署pod。 我为Docker注册局部署了另一个应用程序,现在当我尝试将我的更新映像推送到此Docker注册表时,它失败,并显示消息“需要验证”。 我已给予我的用户管理员权限。

docker push <local-ip>:5000/openshift/<new-updated-image> 
The push refers to a repository [<local-ip>:5000/openshift/<new-updated-image>] (len: 1) 
c014669e27a0: Preparing 
unauthorized: authentication required 

如何确保修改后的映像得到成功部署?

+0

所以据我理解你建立你的詹金斯图像细腻。推在OpenShift注册表,然后尝试在OpenShift中使用它?你在你的OpenShift docker注册表上执行了哪些命令验证? – lvthillo

可能这个答案需要编辑,因为你的问题可能是由很多事情引起的。 (我假设你使用的是OpenShift原点?(opensource))。因为我看到Jenkins的Centos7图像。

首先,您需要在默认项目中部署openshift注册表。

$ oc project default 
$ oadm registry --config=/etc/origin/master/admin.kubeconfig \ 
    --service-account=registry 

将部署注册表窗格。在注册表上方将创建一个服务(类似于您的pod上的loadbalancer的端点)。

该服务的IP位于172.30范围内。 您可以在Web控制台检查该IP或执行(假设你仍然在默认的项目): $ OC得到SVC

NAME    CLUSTER-IP  EXTERNAL-IP PORT(S)     AGE 
docker-registry 172.30.22.11 <none>  5000/TCP     8d 
kubernetes  172.30.32.13  <none>  443/TCP,53/UDP,53/TCP  9d 
router   172.30.42.42 <none>  80/TCP,443/TCP,1936/TCP 9d 

所以你需要使用该服务的泊坞窗的注册表的IP进行身份验证。您还需要一个令牌:

$ oc whoami -t 
D_OPnWLdgEbiKJzvG1fm9dYdX.. 

现在,您可以执行登录和推图像:

$ docker login -u admin -e [email protected] \ 
-p D_OPnWLdgEbiKJzvG1fm9dYdX 172.30.22.11:5000 
WARNING: login credentials saved in /root/.docker/config.json 
Login Succeeded 

$ docker tag myimage:latest 172.30.22.11/my-proj/myimage:latest 

$ docker push 172.30.22.11/my-proj/myimage:latest 

希望这会有所帮助。你可以对这个答案给出一些反馈,并告诉它是否适合你,或者你遇到了哪些新问题。

+0

我使用的是Openshift Enterprise ...并且您提供的步骤与我遵循的完全相同,我部署了一个注册表窗格,我可以使用令牌和注册表IP登录,然后我标记了我的图像。 我得到的错误是在推送图像时... –

+0

作为哪位用户推送图像?你有权限推送图像吗?(例如你是否具有集群管理员角色) – lvthillo

+0

我用我的个人ID 推送图像: 我通过以下命令向用户提供管理员权限: ** oadm policy add-role-to-user admin khare.ak ** 虽然我通过使用本地码头注册表解决了该问题,并使用该本地码头注册表部署我的应用程序 –

一切只是最后一行得到验证错误

搬运工推172.30.22.11/my-proj/myimage:latest

+0

您是否尝试添加** add-cluster-role-to-user ** Lorenzvth7上面提出的管理员权限授予您的用户? –

+0

我把自己添加为admin: –