首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gunicorn错误,以前工作过

gunicorn错误,以前工作过
EN

Stack Overflow用户
提问于 2019-09-06 05:28:43
回答 1查看 496关注 0票数 1

我有一个docker-compose文件,直到今天都工作得很好,但当我尝试用gunicorn启动我的was服务器时,它就开始抛出一个错误。日志如下所示:

代码语言:javascript
复制
    flask_apis  | [2019-09-05 21:20:04 +0000] [1] [INFO] Starting gunicorn 19.9.0
flask_apis  | [2019-09-05 21:20:04 +0000] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)
flask_apis  | [2019-09-05 21:20:04 +0000] [1] [INFO] Using worker: sync
flask_apis  | [2019-09-05 21:20:04 +0000] [8] [INFO] Booting worker with pid: 8
flask_apis  | [2019-09-05 21:20:04 +0000] [8] [ERROR] Exception in worker process
flask_apis  | Traceback (most recent call last):
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
flask_apis  |     worker.init_process()
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/workers/base.py", line 129, in init_process
flask_apis  |     self.load_wsgi()
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
flask_apis  |     self.wsgi = self.app.wsgi()
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
flask_apis  |     self.callable = self.load()
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
flask_apis  |     return self.load_wsgiapp()
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
flask_apis  |     return util.import_app(self.app_uri)
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/util.py", line 350, in import_app
flask_apis  |     __import__(module)
flask_apis  | ModuleNotFoundError: No module named 'fintech'
flask_apis  | [2019-09-05 21:20:04 +0000] [8] [INFO] Worker exiting (pid: 8)
flask_apis  | [2019-09-05 21:20:04 +0000] [9] [INFO] Booting worker with pid: 9
flask_apis  | [2019-09-05 21:20:04 +0000] [9] [ERROR] Exception in worker process
flask_apis  | Traceback (most recent call last):
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
flask_apis  |     worker.init_process()
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/workers/base.py", line 129, in init_process
flask_apis  |     self.load_wsgi()
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
flask_apis  |     self.wsgi = self.app.wsgi()
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
flask_apis  |     self.callable = self.load()
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
flask_apis  |     return self.load_wsgiapp()
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
flask_apis  |     return util.import_app(self.app_uri)
flask_apis  |   File "/usr/local/lib/python3.7/site-packages/gunicorn/util.py", line 350, in import_app
flask_apis  |     __import__(module)
flask_apis  | ModuleNotFoundError: No module named 'fintech'

我的dockerfile看起来像这样

代码语言:javascript
复制
FROM python:3.7-slim

WORKDIR /app

RUN pip install --upgrade pip

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

以及用于该服务器的docker合成文件:

代码语言:javascript
复制
services:

  api:
    build: 
      context: .
      dockerfile: ./Dockerfile
    image: flask-pywren
    container_name: flask_apis
    command: /usr/local/bin/gunicorn -w 2 -b :8000 fintech.flask_entrypoint:app
    env_file:
     - ./docker.env
    expose:
      - "8000"
    volumes:
      - .:/app/

有趣的是,我可以在docker图像中打开sh:

代码语言:javascript
复制
docker run -it flask-pywren sh

然后运行

代码语言:javascript
复制
/usr/local/bin/gunicorn -w 2 -b :8000 fintech.flask_entrypoint:app

而gunicorn启动得很好。我唯一能想到的就是docker-compose不是从WORKDIR开始的?我还将working_dir: "/app"添加到docker-compose文件中,但这也不起作用。我真的很困惑,为什么这突然不能像预期的那样工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-06 05:36:53

如果您在日志中看到了非常清楚的ModuleNotFoundError: No module named 'fintech'

您需要安装fintech

代码语言:javascript
复制
FROM python:3.7-slim

WORKDIR /app

RUN pip install --upgrade pip
RUN pip install fintech

就docker-compose而言,可以改变docker的行为是

代码语言:javascript
复制
    volumes:
      - .:/app/

它将覆盖在构建时COPY . .期间复制/app下的所有内容

understanding-docker-and-docker-compose

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57813197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档