Docker-контейнер - как лучше вставлять в него конфиденциальные данные - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть служба, которая отправляет электронные письма.Я бы не хотел хранить свой пароль 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 в контейнер?

Большое спасибо за каждый ответ!

1 Ответ

0 голосов
/ 05 марта 2019

Просто используйте команду docker-compose вместо команды docker:

docker-compose build --build-arg buildtime_variable=new_value <container name>

Наслаждайтесь!

...