我已经gunicorn安装在我的虚拟环境中:
$ pip install gunicorn
Collecting gunicorn
Using cached gunicorn-19.7.1-py2.py3-none-any.whl
Installing collected packages: gunicorn
Successfully installed gunicorn-19.7.1
Run Code Online (Sandbox Code Playgroud)
但是当我尝试用它运行我的应用程序时:
$ gunicorn helloapp.wsgi
[2017-05-18 22:42:36 +0000] [1963] [INFO] Starting gunicorn 19.6.0
[2017-05-18 22:42:36 +0000] [1963] [INFO] Listening at: http://127.0.0.1:8000 (1963)
[2017-05-18 22:42:36 +0000] [1963] [INFO] Using worker: sync
[2017-05-18 22:42:36 +0000] [1967] [INFO] Booting worker with pid: 1967
[2017-05-18 22:42:36 +0000] [1967] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 557, in spawn_worker
worker.init_process()
File …Run Code Online (Sandbox Code Playgroud) 我在 Django Rest Framework 中有一个带有分页响应的 ModelSerializer。所以我将它与gunicorn一起部署在docker容器中。
gunicorn -c gunicorn_config.py app.wsgi --bind 0.0.0.0:5000
现在的问题出在分页响应中。关键next是类似的东西。
next: "http://0.0.0.0:5000/admin/users/?page=2&per_page=10"
在我使用这些 API 的客户端中,我只需检查密钥next并获取下一个响应。但由于next密钥具有主机,0.0.0.0:5000因此会导致 API 调用失败。而且钥匙并没有达到目的next。
所以目前,我的 API 服务器正在一个单独的 docker 容器中运行。这是通过 中的反向代理设置的nginx。
我有一个运行gunicorn进程的docker镜像,但每次运行时我都会收到错误ImportError: No module named 'crm'.所以我正在关注这篇SO帖子来解决这个问题.
但是,当我跑
ENTRYPOINT ["PYTHONPATH=`pwd`/..", "/usr/local/bin/gunicorn", "web_interface:app", "-w 4", "-t 90", "--log-level=debug", "-b 0.0.0.0:8000", "--reload"]
Run Code Online (Sandbox Code Playgroud)
容器吐了回来
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"
Run Code Online (Sandbox Code Playgroud)
知道如何运行PYTHONPATH命令吗?
我应该声明它在我的Mac上本地工作,但不在Ubuntu容器中.
我尝试过的:
"PYTHONPATH=PWD/.."
"PYTHONPATH=$(pwd)/.."
"PYTHONPATH=$PWD/.."