I'm working on a Docker image that bundles Apache with PHP7 and uses msmtp for Sendgrid integration. The reason I like msmtp is there is no separate running process so it bundles nicely without need for an SMTP container.
That said, the configuration for msmtp looks like this
account sendgrid host smtp.sendgrid.net port 587 auth on user apikey password YOUR_API_KEY from FROM@YOURDOMAIN.TLD
Ideally, the file will be all there with the values for
FROM@YOURDOMAIN.TLD somehow passed to the container at runtime.
Now I'm considering options for how to go about writing my Dockerfile... Given that I intend to run the container inside a pod on Kubenetes on Google Cloud Platform might impact this decision.
It looks like build args would be a poor choice here based on the warning from the docker docks
Warning: It is not recommended to use build-time variables for passing secrets like github keys, user credentials etc. Build-time variable values are visible to any user of the image with the docker history command.
Given all of this, what's the best approach to create an image that will allow the credentials to be passed at runtime? I also still need to figure out a way to pass those arguments into the file when the container starts... Or should I forget all of this and just
COPY the msmtp config in it's entirety for each client? That sounds a bit disastrous!