K8s & Docker - идеальный дизайн изображения для чувствительных параметров на GCP
Я работаю над образом Docker, который связывает Apache с PHP7 и использует msmtp для интеграции с Sendgrid. Причина, по которой мне нравится msmtp, заключается в том, что нет отдельного запущенного процесса, поэтому он прекрасно упаковывается без необходимости в контейнере SMTP.
Тем не менее, конфигурация для MSMTP выглядит следующим образом
account sendgrid
host smtp.sendgrid.net
port 587
auth on
user apikey
password YOUR_API_KEY
from FROM@YOURDOMAIN.TLD
В идеале, файл будет все со значениями для YOUR_API_KEY
а также FROM@YOURDOMAIN.TLD
каким-то образом передается в контейнер во время выполнения.
Сейчас я рассматриваю варианты написания моего Dockerfile... Учитывая, что я намерен запустить контейнер в модуле на Kubenetes на Google Cloud Platform, это может повлиять на это решение.
Я узнал о таких вещах, как время сборки args (ARG
), переменные среды (ENV
) и тому подобное, в этой замечательной статье.
Похоже, что сборка args будет плохим выбором из-за предупреждений док-станций
Предупреждение: не рекомендуется использовать переменные времени сборки для передачи секретов, таких как ключи github, учетные данные пользователя и т. Д. Значения переменных времени сборки видны любому пользователю образа с помощью команды истории докера.
Учитывая все это, каков наилучший подход к созданию образа, который позволит передавать учетные данные во время выполнения? Мне также все еще нужно найти способ передать эти аргументы в файл при запуске контейнера... Или я должен все это забыть и просто COPY
Конфигурация msmtp полностью для каждого клиента? Это звучит немного пагубно!