在 PEX 文件上运行 python 代码时可以读取环境变量吗?

问题描述 投票:0回答:1

我试图让我的 python 应用程序在 docker 容器内的 PEX 文件上运行。

我想知道 PEX 文件是否支持任何类型的配置,以便读取提供给 docker 容器的环境变量,以避免为每个具有不同类型配置的部署环境打包 PEX 文件。

我在 PEX 网站上找不到任何类型的文档。

期望能够从 PEX 文件上运行的 python 进程使用为 docker 容器定义的环境变量,但 PEX 执行似乎是自我隔离的。

我能找到的关于运行时环境变量的唯一文档是关于 PEX_* 环境变量的,但它似乎没有达到这个目的。

python docker environment-variables pex
1个回答
0
投票

PEX 文件接收所有环境变量(可能除了一些更改,例如在

PYTHONPATH
中),您可以通过将
import os; print(sorted(os.environ.items()))
写入
myprog.py
来尝试此操作,然后运行
python myprog.py
,构建
myprog.pex
,运行
 python myprog.pex

使用

docker run
命令的 Docker 不会将主机环境变量传递给容器。要传递其中一些,请使用
-e
标志,如下所示:https://stackoverflow.com/a/30494145/97248

© www.soinside.com 2019 - 2024. All rights reserved.