我试图让我的 python 应用程序在 docker 容器内的 PEX 文件上运行。
我想知道 PEX 文件是否支持任何类型的配置,以便读取提供给 docker 容器的环境变量,以避免为每个具有不同类型配置的部署环境打包 PEX 文件。
我在 PEX 网站上找不到任何类型的文档。
期望能够从 PEX 文件上运行的 python 进程使用为 docker 容器定义的环境变量,但 PEX 执行似乎是自我隔离的。
我能找到的关于运行时环境变量的唯一文档是关于 PEX_* 环境变量的,但它似乎没有达到这个目的。
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