не могу заставить принять самозаверяющие сертификаты при поиске образов Docker

Я пытаюсь запустить образец helloworld. Проблема в том, что моя компания использует прокси-сервер MITM, который заменяет все сертификаты на https-соединениях своими собственными. Таким образом, все инструменты, которые пытаются перейти по URL-адресу https, терпят неудачу.

В данном случае это код, загружающий образ Docker из официального реестра:

resource script '/opt/resource/check []' failed: exit status 1

stderr:
failed to ping registry: 2 error(s) occurred:

* ping https: Get https://registry-1.docker.io/v2/: x509: certificate signed by unknown authority
* ping http: Get https://registry-1.docker.io/v2/: x509: certificate signed by unknown authority

Я попытался добавить параметр insecure_registries, но это не работает:

jobs:
- name: hello-world
plan:
- task: say-hello
  config:
    platform: linux
    image_resource:
      type: docker-image
      source: 
        repository: ubuntu,
        insecure_registries: ["docker.io:80"]

    run:
      path: echo
      args: ["Hello, world!"]

Любые идеи, что я могу делать неправильно?


person Nicolas Mommaerts    schedule 26.07.2017    source источник
comment
Как насчет того, чтобы вместо docker.io использовать registry-1.docker.io   -  person Tarun Lalwani    schedule 26.07.2017
comment
спасибо, но я уже пробовал это, это была моя первая попытка   -  person Nicolas Mommaerts    schedule 26.07.2017
comment
Как настроить concourse ci в вашем случае?   -  person Tarun Lalwani    schedule 26.07.2017
comment
Я следовал бродячему руководству с сайта: concourse.ci/vagrant.html   -  person Nicolas Mommaerts    schedule 26.07.2017
comment
Это все еще не работает, если вы удалите запятую после repository: ubuntu?   -  person Andrew Edstrom    schedule 26.07.2017
comment
да, удаление запятой не помогло   -  person Nicolas Mommaerts    schedule 31.07.2017


Ответы (1)


Это проблема, с которой столкнулось несколько пользователей, и мы пытаемся найти общее решение, которое можно использовать для всех ресурсов. Если вам интересны наши успехи в этом, вы можете прочитать больше в этой проблеме GitHub.

Тем временем вы можете попробовать использовать опцию ca_certs, чтобы передать сертификаты вашего человека в середине прокси-сервера в ресурс. Обратите внимание, что ca_certs нельзя использовать в сочетании с insecure_registries. Не видя вашей точной конфигурации, я не могу дать точное решение, но если ca_certs не решит вашу проблему, вам также следует изучить флаг client_certs.

Подробнее обо всех этих параметрах можно прочитать в docker-image-resource документации здесь.

person Andrew Edstrom    schedule 26.07.2017