Docker 容器 - 向其中注入敏感数据的最佳做法是什么
Docker container - what's the best practice to inject to it a sensitive data
我有一个发送电子邮件的服务。我不想将我的 Gmail 密码保存在任何文件中。谷歌搜索后,我发现我可以在构建容器时使用 --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 注入容器?
非常感谢每个回答!
Just use the docker-compose instead of docker command:
docker-compose build --build-arg buildtime_variable=new_value <container name>
Enjoy!
我有一个发送电子邮件的服务。我不想将我的 Gmail 密码保存在任何文件中。谷歌搜索后,我发现我可以在构建容器时使用 --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 注入容器?
非常感谢每个回答!
Just use the docker-compose instead of docker command:
docker-compose build --build-arg buildtime_variable=new_value <container name>
Enjoy!