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

K8s и Docker - идеальный дизайн образа для чувствительных параметров на GCP

Я работаю над образом 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 целиком для каждого клиента? Звучит ужасно!