从Gitlab部署Docker映像';s私有Docker注册表到Openshift
我在做一个基于Docker的项目。项目代码托管在一个私有的Gitlab安装中,从Gitlab部署Docker映像';s私有Docker注册表到Openshift,docker,openshift,gitlab,kubernetes,Docker,Openshift,Gitlab,Kubernetes,我在做一个基于Docker的项目。项目代码托管在一个私有的Gitlab安装中,git.example.com。使用它,可以部署注册表.example.com 该项目有一个CI设置,它最终构建Docker映像并推送到注册表,这部分按预期工作。正如所述,我正在使用标记解决方案,将图像指定为: registry.example.com/group/my.project:web registry.example.com/group/my.project:app 等等 我已经创建了一个用户,并将其附加
git.example.com
。使用它,可以部署注册表.example.com
该项目有一个CI设置,它最终构建Docker映像并推送到注册表,这部分按预期工作。正如所述,我正在使用标记解决方案,将图像指定为:
registry.example.com/group/my.project:web
registry.example.com/group/my.project:app
- 等等
ImageStream
块,如下所示:
apiVersion: v1
kind: ImageStream
metadata:
name: web
spec:
tags:
-
from:
kind: DockerImage
name: registry.example.com/group/my.project:web
name: latest
这会将图像添加到Images部分,但无法将其拉入Openshift,因为Openshift尚未访问Docker注册表。如前所述,我添加了一个新的Docker机密,现在可以在Openshift中看到图像元数据,一切都如预期的那样
但是,如果我添加一个部署配置,如下所示:
apiVersion: v1
kind: DeploymentConfig
metadata:
creationTimestamp: null
labels:
service: web
name: web
spec:
replicas: 1
selector:
service: web
strategy:
resources: { }
template:
metadata:
creationTimestamp: null
labels:
service: web
spec:
containers:
-
name: web
ports:
-
containerPort: 80
resources: { }
restartPolicy: Always
test: false
triggers:
-
type: ConfigChange
-
type: ImageChange
imageChangeParams:
automatic: true
containerNames:
- web
from:
kind: ImageStreamTag
name: 'web:latest'
status: { }
我不断地犯错误:
Failed to pull image "registry.example.com/group/my.project@sha256:3333022641e571d7e4dcae2953d35be8cdf9416b13967b99537c4e8f150f74e4": manifest unknown: manifest unknown
在创建的pod的事件选项卡中。这基本上扼杀了我将预构建映像部署到Openshift的计划
我知道Docker 1.9->1.10不兼容,但这是Openshift 1.4.1,图像是用Docker 1.13推送的,所以应该不会有问题
我如何开始调试这个,有没有一种方法可以访问任何类型的日志来解释发生了什么?为什么ImageStream能够找到它所需要的一切(并访问我的注册表),而不能找到DeploymentConfig?回答我自己的问题:Docker的发行版(注册表守护程序)似乎已经完成了 基本上,问题是:
SHA:1234
(当然是示例)SHA:ABCD
,您可以通过按下然后立即拉出来复制此摘要,正如链接中所解释的,两次摘要应该是相同的此后,我将我的Gitlab实例移动到了另一台机器上(它在Nginx后面),并且它可以正常工作。回答我自己的问题:Docker的发行版(注册表守护程序)似乎有问题 基本上,问题是:
SHA:1234
(当然是示例)SHA:ABCD
,您可以通过按下然后立即拉出来复制此摘要,正如链接中所解释的,两次摘要应该是相同的