在Ubuntu 16.04中设置PYTHONPATH以使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"] 这个容器吐出

我有一个正在运行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"]
这个容器吐出一个液体

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}”
,效果很好。