ОС: 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, поскольку могут выполняться другие компоненты.
Итак, подведем итоги:
- Есть ли способ использовать подстановочный знак для записи незащищенного реестра?
- Как заставить докер распознавать запись небезопасного реестра без перезапуска демона docker?