lat*_*s64 7 python flask gunicorn docker
我有一个项目设置为与 docker 一起运行 一台机器是 ubuntu 我一直在运行它,但最近我试图在我的 Windows 笔记本电脑上运行它,但遇到了 ModuleNotFoundError。
[2018-01-05 20:31:46 +0000] [5] [INFO] Starting gunicorn 19.7.1
explore_1 | [2018-01-05 20:31:46 +0000] [5] [INFO] Listening at: http://0.0.0.0:8080 (5)
explore_1 | [2018-01-05 20:31:46 +0000] [5] [INFO] Using worker: sync
explore_1 | [2018-01-05 20:31:46 +0000] [8] [INFO] Booting worker with pid: 8
explore_1 | [2018-01-05 20:31:46 +0000] [8] [ERROR] Exception in worker process
explore_1 | Traceback (most recent call last):
explore_1 | File "/usr/local/lib/python3.6/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker
explore_1 | worker.init_process()
explore_1 | File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 126, in init_process
explore_1 | self.load_wsgi()
explore_1 | File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi
explore_1 | self.wsgi = self.app.wsgi()
explore_1 | File "/usr/local/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
explore_1 | self.callable = self.load()
explore_1 | File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
explore_1 | return self.load_wsgiapp()
explore_1 | File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
explore_1 | return util.import_app(self.app_uri)
explore_1 | File "/usr/local/lib/python3.6/site-packages/gunicorn/util.py", line 352, in import_app
explore_1 | __import__(module)
explore_1 | ModuleNotFoundError: No module named 'wsgi'
explore_1 | [2018-01-05 20:31:46 +0000] [8] [INFO] Worker exiting (pid: 8)
explore_1 | [2018-01-05 20:31:47 +0000] [5] [INFO] Shutting down: Master
explore_1 | [2018-01-05 20:31:47 +0000] [5] [INFO] Reason: Worker failed to boot.
Run Code Online (Sandbox Code Playgroud)
我检查以确保我的路径环境变量设置正确。是否有任何常见的 gunicorn 问题可能导致这种或其他明显的检查问题?
该容器的 dockerfile 如下:
FROM python:3
MAINTAINER dev@temboinc.com
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY requirements.txt /usr/src/app/
RUN pip install --no-cache-dir -r requirements.txt
COPY . /usr/src/app
ENV MODE dev
EXPOSE 8080
VOLUME /static
COPY src/static /static
RUN python3 setup.py install
#CMD python3 wsgi.py
CMD gunicorn -w 3 -b 0.0.0.0:8080 wsgi --reload
Run Code Online (Sandbox Code Playgroud)
Sli*_*eam 10
要更改到项目文件夹,您可以使用命令--chdir。
例子:
gunicorn -w 2 -b 0.0.0.0:8000 --chdir /code/myproject myproject.wsgi
Run Code Online (Sandbox Code Playgroud)
您要求gunicorn
运行当前目录中的文件名wsgi.py
或名为wsgi
. 后者可能只是一个名为wsgi/
其中包含__init__.py
文件的目录(因此您需要wsgi/__init__.py
.
如果您的 Web 应用程序包含在具有不同名称的文件中,则需要将命令调整gunicorn
为wsgi
任何名称。
由于您似乎正在使用 Docker 来运行此程序,因此您也可能没有使用ADD
其中的命令Dockerfile
将文件复制wsgi.py
到 Docker 容器中。或者,您可能已经这样做了,但它与您运行命令的目录位于不同的目录中gunicorn
。
归档时间: |
|
查看次数: |
14499 次 |
最近记录: |