arc*_*tom 19 python path docker
如何在Dockerfile中添加PYTHONPATH的路径?这样当容器运行时它有正确的PYTHONPATH?我对码头工作者来说是新手.
我已添加ENV PYTHONPATH "${PYTONPATH}:/control"到Dockerfile,因为我想将目录添加/control到PYTHONPATH.
当我访问容器bash docker exec -it trusting_spence bash并打开python并运行下面的命令时,目录control不在列表中.
import sys
print(sys.path)
FROM python:2
RUN pip install requests\
&& pip install pymongo
RUN mkdir control
COPY control_file/ /control
ENV PYTHONPATH "${PYTONPATH}:/control"
CMD ["python","control/control_file/job.py"]
Run Code Online (Sandbox Code Playgroud)
Eri*_*and 30
只需添加一个ENV条目Dockerfile:
ENV PYTHONPATH "${PYTHONPATH}:/your/custom/path"
Run Code Online (Sandbox Code Playgroud)
或者PYTHONPATH在启动脚本中设置.
Nim*_*rag 10
您正确设置了 python 路径,但是您的命令不是由 shell 运行的,因此PYTHONPATH不考虑环境变量。
将您CMD的“exec”形式更改为“shell”形式:
CMD python control/control_file/job.py
从文档:
注意:与 shell 形式不同,exec 形式不调用命令 shell。这意味着正常的 shell 处理不会发生。例如, CMD [ "echo", "$HOME" ] 不会对 $HOME 进行变量替换。如果你想要 shell 处理,那么要么使用 shell 形式,要么直接执行 shell,例如:CMD [ "sh", "-c", "echo $HOME" ]。当使用 exec 形式并直接执行 shell 时,就像 shell 形式一样,是 shell 进行环境变量扩展,而不是 docker。