将环境变量设置为用python创建的docker容器
我正在开发一个应用程序,使用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
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”]
。当然是我的错。。我会把你的答案标记为有用,但不是解决方案。如果你喜欢诚实的人,我只是想帮你,我不是一个追求名誉的人。