В среде CI я хочу передать учетные данные для аутентификации на нашем внутреннем сервере Gems в контейнеры докеров, запускаемые в рамках заданий CI. Я хотел бы иметь возможность настроить демон docker, чтобы он всегда извлекал переменную из среды на агенте и вставлял ее во все запущенные контейнеры.
Возможно ли это сейчас?
Легкий способ:
$ export HOSTVAR=somevalue
$ docker run -it --rm -e CONTAINERVAR="${HOSTVAR}" someimage
Конечно, это не приведет к внесению изменений в HOSTVAR
в работающие контейнеры, вам также необходимо убедиться, что воссоздать каждый работающий контейнер должен HOSTVAR
изменение. В зависимости от вашей настройки этого может быть достаточно, т.е. каждый тест запускается в новом контейнере.
Если у вас есть давно работающие контейнеры, вам придется полагаться на некую форму демона общей конфигурации, например etcd работает внутри ваших контейнеров. Его довольно просто настроить, и он позволяет отслеживать изменения в централизованном хранилище ключей / значений конфигурации. Проверить etcd документы для примера.