在Ubuntu 16.04中设置PYTHONPATH以使Docker映像正常运行
我有一个正在运行gunicorn进程的docker映像,但每次它运行时都会出现错误在Ubuntu 16.04中设置PYTHONPATH以使Docker映像正常运行,python,ubuntu,docker,gunicorn,Python,Ubuntu,Docker,Gunicorn,我有一个正在运行gunicorn进程的docker映像,但每次它运行时都会出现错误ImportError:没有名为“crm”的模块。所以我下面就来解决这个问题 然而,当我跑的时候 ENTRYPOINT ["PYTHONPATH=`pwd`/..", "/usr/local/bin/gunicorn", "web_interface:app", "-w 4", "-t 90", "--log-level=debug", "-b 0.0.0.0:8000", "--reload"] 这个容器吐出
ImportError:没有名为“crm”的模块
。所以我下面就来解决这个问题
然而,当我跑的时候
ENTRYPOINT ["PYTHONPATH=`pwd`/..", "/usr/local/bin/gunicorn", "web_interface:app", "-w 4", "-t 90", "--log-level=debug", "-b 0.0.0.0:8000", "--reload"]
这个容器吐出一个液体
ERROR: for web Cannot start service web: oci runtime error: container_linux.go:247: starting container process caused "exec: \"PYTHONPATH=`pwd`/.. \": stat PYTHONPATH=`pwd`/.. : no such file or directory"
知道如何运行PYTHONPATH命令吗
我应该声明它可以在我的Mac上本地工作,但不能在Ubuntu容器中工作
我所尝试的:
“PYTHONPATH=
pwd/…”
“PYTHONPATH=$(pwd)/…”
“PYTHONPATH=$PWD/。”
所以这似乎是可行的
ENTRYPOINT ["/usr/local/bin/gunicorn", "--pythonpath=`$PWD`/..", "web_interface:app", "-w 4", "-t 90", "--log-level=debug", "-b 0.0.0.0:8000", "--reload"]
您应该使用以下说明定义
入口点之外的环境:
ENV PYTHONPATH /absolute/path/to/the/pythonpath/inside/the/container
ENTRYPOINT ["/usr/local/bin/gunicorn", "web_interface:app", "-w 4", "-t 90", "--log-level=debug", "-b 0.0.0.0:8000", "--reload"]
太好了,我更喜欢这个答案。因此,我可以使用$PWD/。
而不是路径名不确定$PWD
,因为它取决于当前的WORKDIR
()。您正在构建一个映像,这样您就可以控制路径,而不需要与应用程序目录相对。我使用了ENV PYTHONPATH“${PYTHONPATH}:${PWD}”
,效果很好。