如何在 Docker 文件中添加 PYTHONPATH 的路径



如何在 Dockerfile 中添加PYTHONPATH路径?这样当容器运行时,它具有正确的PYTHONPATH?我对 Docker 完全陌生。

我已经将ENV PYTHONPATH "${PYTHONPATH}:/control"添加到 Dockerfile 中,因为我想将目录/control添加到PYTHONPATH.

当我使用docker exec -it trusting_spence bash访问容器的 bash 并打开 python 并运行目录下方的命令时control不在列表中。

import sys print(sys.path)

FROM python:2
RUN pip install requests pymongo
RUN mkdir control
COPY control_file/ /control
ENV PYTHONPATH "${PYTHONPATH}:/control"
CMD ["python","control/control_file/job.py"] 

只需在Dockerfile中添加一个ENV条目:

ENV PYTHONPATH "${PYTHONPATH}:/your/custom/path"

或者在启动脚本中设置PYTHONPATH

您正确设置了 python 路径,但您的命令不是由 shell 运行的,因此不考虑环境变量PYTHONPATH

将您的CMD从"exec"形式更改为"shell"形式:

CMD python control/control_file/job.py


从文档中:

注意:与 shell 窗体不同,exec 窗体不调用命令 shell。这意味着不会发生正常的外壳处理。例如,CMD [ "echo", "$HOME" ] 不会对$HOME进行变量替换。如果你想要 shell 处理,那么要么使用 shell 形式,要么直接执行 shell,例如:CMD [ "sh", "-c", "echo $HOME" ]。当使用 exec 表单并直接执行 shell 时,就像 shell 形式一样,是 shell 在执行环境变量扩展,而不是 docker。

以更简单的方式完成。以这种方式将 .env 文件中的 python 路径添加为一行。

PYTHONPATH=/app/project_source/

相关内容

  • 没有找到相关文章

最新更新