【问题标题】:Build docker images with gitlab CI and push to self signed https nexus repo使用 gitlab CI 构建 docker 镜像并推送到自签名 https nexus repo
【发布时间】:2017-10-15 13:36:28
【问题描述】:

我有一个 gitlab CI 设置,我想在其中构建和推送 docker 映像,第一个问题是我的 nexus 存储库不是 https。 实际的错误信息是这样的:

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

要构建 docker 镜像,我们使用 docker:latest 镜像,但我无法在 .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 命令行的魔法,我真的需要创建一个自己的镜像来解决这个问题?

【问题讨论】:

    标签: docker gitlab self-signed


    【解决方案1】:

    您可以使用不同的命令启动 docker dind。详情见以下网址

    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 注册表

    【讨论】:

      【解决方案2】:

      为我工作,语法稍作修改,Command 需要数组。

      services:
      - name: docker:dind
        command: ["--insecure-registry=some.host:port"]
      

      【讨论】:

        猜你喜欢
        • 2018-02-13
        • 2021-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-09
        • 1970-01-01
        • 2017-08-13
        • 2019-08-03
        相关资源
        最近更新 更多