作者:话说的爱 | 来源:互联网 | 2023-01-13 06:31
我有一个gitlab CI设置,我想构建和推送docker镜像,第一个问题是我的nexus repo不是https.实际的错误消息是这样的:
来自守护程序的错误响应:获取http://some.host:port/v2/:http:server向HTTPS客户端发出HTTP响应
要构建docker镜像我们使用docker:latest
image,我找不到将主机添加为不安全注册表的方法.gitlab-ci.yml
所以自我签署了我的nexus存储库,希望它能解决,但它也没有用,并提供以下错误消息:
来自守护程序的错误响应:获取https://some.host:port/v2/:x509:由未知权限签名的证书
这是我目前的CI设置:
image: docker:latest
services:
- docker:dind
before_script:
- docker info
- docker login -u USER -p PASSWORD some.host:port
stages:
- build
build-image:
stage: build
script:
- docker build -t some.host:port/image:alpine .
- docker push some.host:port/image:alpine
only:
- master
when: manual
那么有一个简单的解决方案或现有的docker镜像我可以配置不安全的注册表可能是一些docker magic with command line我真的需要创建一个自己的图像来解决这个问题吗?
1> Tarun Lalwan..:
您可以dind
使用不同的命令启动docker .有关详细信息,请参阅以下网址
https://docs.gitlab.com/ce/ci/docker/using_docker_images.html#setting-a-command-for-the-service.所以你需要更新你的.gitlab.ci.yml
image: docker:latest
services:
- name: docker:dind
command: [ "--insecure-registry=some.host:port" ]
before_script:
- docker info
- docker login -u USER -p PASSWORD some.host:port
stages:
- build
build-image:
stage: build
script:
- docker build -t some.host:port/image:alpine .
- docker push some.host:port/image:alpine
only:
- master
when: manual
然后你可以使用一个不安全的http注册表