【发布时间】:2018-01-05 20:47:17
【问题描述】:
我有一个项目设置为与 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.
我检查以确保我的路径环境变量设置正确。是否有任何常见的独角兽问题可能导致此问题或其他明显检查的问题?
这个容器的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
【问题讨论】:
-
显然没有名为
wsgi.py的文件? docker 容器中的 /usr/src/app 中有什么? -
在使用 dockerfile 进行一些工具之后,它看起来像 COPY 。 /usr/src/app 不会复制 wsgi.py,即使它与 dockerfile 位于同一目录中。不知道为什么linux上的docker和windows上的docker之间的这种行为会有所不同。
-
检查您的 docker 版本,它们可能在 windows 和 linux 之间有所不同。
标签: python docker flask gunicorn