Я работаю над образом Docker, который связывает Apache с PHP7 и использует мсмтп для интеграции с 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
каким-то образом передается в контейнер во время выполнения.
Теперь я рассматриваю варианты того, как приступить к написанию моего файла Docker ... Учитывая, что я намерен запустить контейнер внутри модуля на Kubenetes на облачной платформе Google, это может повлиять на это решение.
Я узнал о таких вещах, как аргументы времени сборки (ARG
), переменные среды (ENV
) и тому подобное, в эта замечательная статья.
Похоже, что аргументы сборки были бы здесь плохим выбором из-за предупреждения из док-станций
Предупреждение: не рекомендуется использовать переменные времени сборки для передачи секретов, таких как ключи github, учетные данные пользователя и т. Д. Значения переменных времени сборки видны любому пользователю образа с помощью команды docker history.
Учитывая все это, как лучше всего создать образ, который позволит передавать учетные данные во время выполнения? Мне также все еще нужно найти способ передать эти аргументы в файл при запуске контейнера ... Или я должен все это забыть и просто COPY
конфигурацию msmtp целиком для каждого клиента? Звучит ужасно!