使用gitlab CI构builddocker镜像并推送到自签名的https nexus repo

我有一个gitlab CI设置,我想要构build并推入docker镜像,第一个问题是我的nexus repo不是https。 实际的错误信息是这样的:

来自守护进程的错误响应:获取http://some.host:port/v2/:http :服务器给予HTTPS客户端的HTTP响应

要build立docker图像,我们使用docker:latest image,并且我找不到将主机添加为不安全registry的方式.gitlab-ci.yml

所以一个自我签署我的联系存储库希望它会解决,但它也没有工作,并提供以下错误信息:

来自守护程序的错误响应:获取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 

那么有没有一个简单的解决scheme或现有的docker图像,我可以configuration不安全的registry可能是一些docker魔术与命令行我真的需要创build一个自己的形象来解决这个问题?

你可以用不同的命令启动dind 。 有关更多详情,请参阅以下url

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 

那么你可以使用一个不安全的httpregistry