Docker容器-向其中注入(inject)敏感数据的最佳实践是什么

标签 docker environment-variables docker-container docker-build docker-exec

我有一个发送电子邮件的服务。我不想将我的 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 注入(inject)容器?

非常感谢每个答案!

最佳答案

Just use the docker-compose instead of docker command:


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

Enjoy!

关于Docker容器-向其中注入(inject)敏感数据的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54873288/

相关文章:

linux - 如何在 Ubuntu 中重置 bashrc 以删除用户编写的导出 $path

docker - 如何从另一个 Dockerfile 生成 Dockerfile?

javascript - 如何通过 API 启动 hyper.sh 容器? (接收“执行失败 : no such file or directory error)

postgresql - 具有单独主机名/ip 的 Kubernetes Citus 设置

docker-compose - docker-compose 文件中 ENV 变量 DOCKER_REGISTRY 后面的连字符是什么

docker - 如何从另一个都在不同机器上运行的容器访问一个容器?

docker - 使用$()时,Docker rm命令抛出错误

Kubernetes 环境变量在 sequelize-cli 中不起作用

docker - 自动崩溃时重启 Docker 容器

docker - 尝试运行容器时,docker是否需要其他端口?