Назад | Перейти на главную страницу

Можно ли настроить переменные среды для импорта в каждый контейнер докеров

В среде CI я хочу передать учетные данные для аутентификации на нашем внутреннем сервере Gems в контейнеры докеров, запускаемые в рамках заданий CI. Я хотел бы иметь возможность настроить демон docker, чтобы он всегда извлекал переменную из среды на агенте и вставлял ее во все запущенные контейнеры.

Возможно ли это сейчас?

Легкий способ:

$ export HOSTVAR=somevalue
$ docker run -it --rm -e CONTAINERVAR="${HOSTVAR}" someimage

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

Если у вас есть давно работающие контейнеры, вам придется полагаться на некую форму демона общей конфигурации, например etcd работает внутри ваших контейнеров. Его довольно просто настроить, и он позволяет отслеживать изменения в централизованном хранилище ключей / значений конфигурации. Проверить etcd документы для примера.