将环境变量设置为用python创建的docker容器

将环境变量设置为用python创建的docker容器,python,docker,environment-variables,Python,Docker,Environment Variables,我正在开发一个应用程序,使用docker映像创建一个容器并运行它 我使用以下代码段创建客户端: client=docker.DockerClient(基本url=)unix://var/run/docker.sock,version='1.41',timeout=10) 很好。 我使用以下命令实例化并正确运行映像:client.containers.run(image=deployment\u json['container\u image'],command=“sbt run”,enviro

我正在开发一个应用程序,使用docker映像创建一个容器并运行它

我使用以下代码段创建客户端:
client=docker.DockerClient(基本url=)unix://var/run/docker.sock,version='1.41',timeout=10)

很好。 我使用以下命令实例化并正确运行映像:
client.containers.run(image=deployment\u json['container\u image'],command=“sbt run”,environment=cfg)
环境参数不会导致错误,容器运行正常,但映像不会检索环境变量(NullPointer,它是Scala应用程序) cfg是这样创建的:
cfg=['var_name',str(env)]
其中env是一个json对象

使用docker lib 5.0.0版。
我错过了什么?如何为docker映像提供环境变量?

从cli角度看,您有
--env,-e
标志,用于在运行
docker run

从文档中,我认为这可以通过使用
environment
var:


执行运行(cmd,stdout=True,stderr=True,stdin=False,tty=False,privileged=False,user='',detach=False,stream=False,socket=False,environment=None,workdir=None,demux=False)
您应该将
环境
变量作为参数传递


environment(dict或list)
–要在容器内设置的环境变量,如字典或字符串列表,格式为
[“SOMEVARIABLE=xxx”]

env包含什么?它是一个json。。。在scala应用程序中,我将此json作为字符串检索,然后将其处理……如果您愿意的话,这正是我所做的。但是谢谢你的努力也许我用错误的方式创建了dict,等等,是的,很抱歉我错过了它,我认为
cfg=['var_name',str(env)]
看起来不太好,应该更像这个
[“SOMEVARIABLE=xxx”]
。当然是我的错。。我会把你的答案标记为有用,但不是解决方案。如果你喜欢诚实的人,我只是想帮你,我不是一个追求名誉的人。