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命令.
-e标志允许您指定env变量的键/值对,
例如:
docker run -e ENVIRONMENT=PROD
Run Code Online (Sandbox Code Playgroud)
您可以使用多次-e标记来定义多个env
变量.例如,docker注册表本身可配置-e flags,请参阅:https:
//docs.docker.com/registry/deploying/#running-a-domain-registry
完整文档:
https://docs.docker.com/engine/reference/commandline/run/#set-environment-variables-e-env-env-file
| 归档时间: |
|
| 查看次数: |
3699 次 |
| 最近记录: |