Как «подтолкнуть докер» к динамическим небезопасным реестрам? - PullRequest
0 голосов
/ 06 июля 2018

ОС: Amazon Linux (размещено на AWS) Версия докера: 17.x Инструменты: Ansible, Docker

Наши разработчики используют Ansible, чтобы иметь возможность раскручивать отдельные спотовые среды AWS, которые заполняются образами докеров, которые создаются на их локальных компьютерах, помещаются в реестр докеров, созданный на спот-машине AWS, а затем запускаются и запускаются.

Когда разработчики делают это локально на своих Macbooks, ansible организует сборку кода с помощью sbt, раскрутит экземпляр места AWS, запустит реестр докеров, поместит изображение в реестр докеров, даст команду экземпляру выгрузить образ и запустите его, запустите тестовый набор и т. д.

Чтобы не-разработчикам было удобнее запускать отдельные тестовые среды, мы поставили за Jenkins сценарий ansible и используем их имя пользователя, чтобы позволить ansible создать доменное имя в Route53, которое указывает на их среду временного экземпляра. .

Все это прекрасно работает без реестра - то есть с использованием JFrog Artifactory, чтобы эти динамические среды просто извлекали предварительно созданные образы. Это позволяет членам команды QA раскручивать любую версию env, которую они хотят. Но теперь, чтобы позволить ему создавать код и выдвигать изменения, мне нужен незащищенный реестр, и именно здесь все развалилось ...

Поскольку любой пользователь может запустить это, доменное имя Route53 является динамическим. Это означает, что я не могу просто жестко закодировать в daemon.json запись --insecure-registry. Я попытался найти способ установить подстановочный реестр, но он, похоже, не работает для меня. Кроме того, поскольку это общий сервер сборки (тот, на котором выполняются команды ANSIBLE), поэтому я не хочу продолжать добавлять записи и перезапускать Docker, поскольку могут выполняться другие компоненты.

Итак, подведем итоги:

  1. Есть ли способ использовать подстановочный знак для записи незащищенного реестра?
  2. Как заставить докер распознавать запись небезопасного реестра без перезапуска демона docker?

1 Ответ

0 голосов
/ 06 июля 2018

Пока что я нашел это решение для удовлетворения своих потребностей, но пока не на 100% счастлив. Я буду работать над этим больше. Он не обрабатывает первый случай подстановочного знака, но, похоже, он работает для второго вопроса о перезагрузке без перезапуска.

Первая проблема - я редактировал не тот файл. Он не уважает /etc/sysconfig/docker и не уважает $HOME/.docker/daemon.json. Единственный файл, который работает на Amazon Linux для меня - это /etc/docker/daemon.json, поэтому я вручную отредактировал его, а затем протестировал перезагрузку и проверил с помощью информации о докере. Я поработаю над этим больше, чтобы программно иметь возможность вставлять записи по мере необходимости, но ручной тест работает:

sudo vim /etc/docker/daemon.json sudo systemctl reload docker.service docker info

...