Docker环境variables来自文件
我正在尝试为我的生产和开发使用一个Dockerfile。 生产和开发之间的唯一区别是我设定的环境variables。 所以我想要从文件中导入环境variables。 在使用Docker之前,我只需要执行以下操作
. ./setvars ./main.py
但是,如果更改与Docker等效的./main.py
. ./setvars docker run .... ./main.py
那么variables将在主机上,不能从Docker实例访问。 当然,快速和肮脏的黑客将是一个文件
#!/bin/bash . ./setvars ./main.py
并在实例中运行。 然而,这真的很烦人,因为我想要运行很多脚本(使用相同的环境variables),然后必须为每个人创build一个额外的脚本。
是否有任何其他的解决scheme,以获得我的环境variables,而不使用不同的Dockerfile和我上面描述的方法在Docker中?
您最好的select是使用--env-file
docker run
命令的-e
标志或--env-file
。
-
-e标志允许你指定envvariables的键/值对,
例如:docker run -e ENVIRONMENT=PROD
您可以使用几次
-e
标志来定义多个env
variables。 例如,dockerregistry本身可以使用-e flags
configuration,请参阅: https : //docs.docker.com/registry/deploying/#running-a-domain-registry - –env文件允许你指定一个文件。 但是文件的每一行必须是VAR = VALtypes的
完整的文档:
https://docs.docker.com/engine/reference/commandline/run/#set-environment-variables-e-env-env-file