繁体   English   中英

python docker api我们如何设置路径环境变量?

[英]python docker api how do we set the path environment variable?

我试图使用python docker api在容器内设置PATH环境变量,但似乎没有工作,容器没有启动

有没有人知道如何设置PATH env变量,其他env变量工作文件。

我看到以下错误OCI运行时exec失败:exec失败:container_linux.go:344:启动容器进程导致“exec:\\”bash \\“:$ PATH中找不到可执行文件”:未知

(exitCode, socConn) = self.container.exec_run('bash -e build/otin/BashCheckGCCVersion.sh',socket=True,environment=["PATH=/usr/lib64/ccache"]) 

 or


 environment=[
        "CCACHE_DIR=/work/.ccache",
        "PATH=/usr/lib64/ccache",
        "BUILDS_ALL_TIME=" + sys.argv[2],
        "PATCH_10.2=" + sys.argv[1]],
    working_dir="/OTINBuild",

请分享api详细信息(或)python脚本的完整详细信息 - 这里它的最小值包括你的docker文件(docker build cmd)。请参阅下面的语法,以及你是否试图覆盖docker镜像构建过程设置的环境变量?

参考: https//docker-py.readthedocs.io/en/stable/api.html

exec_create(container, cmd, stdout=True, stderr=True, stdin=False, tty=False, privileged=False, user='', environment=None, workdir=None, detach_keys=None)


environment (dict or list) – A dictionary or a list of strings in the following format ["PASSWORD=xxx"] or {"PASSWORD": "xxx"}.

docker镜像是否具有bash命令。 尝试其他通用命令,如shls而不是bash

如果您使用字典设置环境变量,它将如下工作:

environment = {"Name_Variable":"Name_Path","Name_Variable2":"Name_Path2"...}
(exitCode, socConn) = self.container.exec_run('bash -e build/otin/BashCheckGCCVersion.sh',socket=True,environment=environment)

如果您尝试查看它是否可以使用以下命令:

docker exec -it "Name_Container" echo $Name_Variable

它不会告诉你价值。

终端正在执行$ Name_Variable,然后将其“发送”到docker。

您必须使用bash输入容器并执行echo $ Name_Variable。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM