Вам нужно будет запросить API хранилища, чтобы заполнить файл .env
или точку входа вашего контейнера. Я бы предпочел в худшем случае точку входа в контейнер, а в идеале - прямо в вашем приложении. Причина в том, что секреты хранилища могут быть недолговечными, и любой контейнер, работающий дольше, чем этот период, должен будет переосмыслить sh его секреты.
Если вы go с худшим случаем сделать это в Точка входа, есть несколько инструментов, которые приходят на ум. confd от Kelsey Hightower и gomplate .
confd
могут работать в качестве демона и перезапускать ваше приложение внутри контейнера при изменении конфигурации. Меня беспокоит только то, что это более старый и менее обслуживаемый проект.
gomplate
будет запущен вашей точкой входа для расширения файла шаблона необходимыми значениями. Этот файл может быть просто env.sh
, который вы затем добавляете в свою среду, если вам нужны env vars. Или вы можете запустить его в командной строке как подоболочку, например
your-app --arg "$(gomplate ...sometemplate...)"
Если вы используете эти инструменты только для установки значения один раз, а затем запускаете свое приложение, обязательно настройте проверку работоспособности и / или грациозность выйдите из приложения по истечении срока действия учетных данных. Затем запустите контейнер с оркестровкой (Kubernetes / Swarm Mode) или установите политику перезапуска, чтобы он перезапускался после истечения срока действия любых учетных данных, чтобы получить новые учетные данные.