передача envvars в Docker-контейнеры в GoCD - PullRequest
0 голосов
/ 03 марта 2019

У нас есть докер-контейнер, и программа, которая работает внутри, ожидает, что будет установлено количество envvars.Есть несколько способов сделать это, и мне было любопытно, какой правильный путь:

1 - поместите envvars в репозиторий конфигурации, добавьте его как материал, используйте для передачи флаг docker --env-fileфайл.Минусы: похоже на перебор для передачи 10 envvars.

2 - определите envvars на вкладке конфигурации задания.Экспортируйте их во время сборки докера.Минусы: Каждое новое задание должно вручную задавать envvars, добавление envvar потребует изменения всех заданий в одном месте.

3 - определите envvars на вкладке конфигурации задания.Передайте их во время запуска докера, используя флаг -e.Минусы: каждая новая работа должна была бы вручную устанавливать envvars, добавление envvar потребовало бы изменения каждой работы в двух местах.

Есть ли другой способ?

1 Ответ

0 голосов
/ 04 марта 2019

Есть еще один вариант: написать небольшой скрипт оболочки, который передает все переменные окружения в docker, которые начинаются с определенного префикса.

Например, вы можете сделать так, чтобы DOCKER_A=a и DOCKER_B=b превратились в-e A=a -e B=b, и назовите его как

docker $(./munge_env_vars) ...

Затем вы можете поместить все свои переменные среды в одно место (либо в конфигурации GoCD, либо в сценарии оболочки под управлением версиями, который вы можете source)и нет необходимости изменять два места при добавлении другой переменной env.

...