来自文件的Docker环境变量

Sma*_*s89 11 docker dockerfile

我正在尝试使用一个Dockerfile进行生产和开发.生产和开发之间的唯一区别是我设置的环境变量.因此,我想从文件中导入环境变量.在使用Docker之前,我会简单地执行以下操作

. ./setvars
./main.py
Run Code Online (Sandbox Code Playgroud)

但是如果改变./main.py与Docker等效

. ./setvars
docker run .... ./main.py
Run Code Online (Sandbox Code Playgroud)

然后变量将在主机上,并且无法从Docker实例访问.当然,快速而肮脏的黑客就是制作文件

#!/bin/bash
. ./setvars
./main.py
Run Code Online (Sandbox Code Playgroud)

并在实例中运行它.然而,这将是非常烦人的,因为我有很多我想运行的脚本(使用相同的环境变量),然后必须为每个人创建一个额外的脚本.

是否有任何其他解决方案来获取我的环境变量在docker中而不使用不同的Dockerfile和我上面描述的方法?

Chr*_*itz 13

你最好的选择是为使用的-e标志,或--env-file在的docker run命令.

完整文档:

https://docs.docker.com/engine/reference/commandline/run/#set-environment-variables-e-env-env-file

  • 完善!--env-file是完美的,对我的设置文件的更改很小。谢谢! (2认同)