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

Set environment var to docker container created in python

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

我使用以下代码片段创建客户端:
client = docker.DockerClient(base_url='unix://var/run/docker.sock', version='1.41', timeout=10)
没关系。 我实例化并 运行 图像正确使用此:
client.containers.run(image=deployment_json['container_image'], command="sbt run", environment=cfg) 环境参数不会导致错误,容器 运行 没问题,但图像不会检索环境变量(NullPointer,它是 Scala 应用程序) cfg 是这样创建的: cfg = ['var_name', str(env)] 其中 env 是一个 json 对象。

使用 docker 库版本 5.0.0.
我错过了什么?如何为 docker 图像提供环境变量?

docker cli 角度来看,当 运行 docker run

时,您有 --env , -e 标志来设置环境变量

从文档我认为这可以使用 environment var:

来实现

exec_run(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 变量

作为参数传递给哪里

environment (dict or list) – 要在容器内设置的环境变量,作为格式为 ["SOMEVARIABLE=xxx"].

的字典或字符串列表