Docker-контейнер - как лучше вставлять в него конфиденциальные данные
У меня есть сервис, который отправляет электронные письма. Я бы не хотел хранить свой пароль Gmail в каком-либо файле. После поиска в Google я обнаружил, что могу предоставить переменные окружения для контейнеров с параметром --build-arg при их создании.
Файл Dockerfile
FROM node:latest
ARG buildtime_variable=default_value
ENV env_var_name=$buildtime_variable
...
CMD [ "node", "dist/server.js" ]
Команда сборки
$ docker build --build-arg buildtime_variable=new_value .
Перечислите переменные среды в работающем контейнере
$ docker exec app env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=38dd21dbeda3
NODE_VERSION=11.10.0
YARN_VERSION=1.13.0
env_var_name=default_value
HOME=/root
Почему в результате env_var_name по-прежнему равно default_value или как я могу вставить new_value в контейнер?
Большое спасибо за каждый ответ!
0 ответов
Просто используйте docker-compose вместо команды docker:
docker-compose build --build-arg buildtime_variable=new_value <container name>
Наслаждайтесь!