Python Gunicorn抛出错误-在$PATH(Docker/Nginx)上找不到可执行文件

Python Gunicorn抛出错误-在$PATH(Docker/Nginx)上找不到可执行文件,python,nginx,flask,docker-compose,gunicorn,Python,Nginx,Flask,Docker Compose,Gunicorn,我正试图让gunicorn在docker compose文件中使用nginx。我的python代码只是一个flask CRUD应用程序 我的flask应用程序的入口点是./flask_app/app.py,我为docker compose yaml文件提供了以下内容 version: '3' services: flask_app: container_name: flask_app restart: always build: ./flask_app p

我正试图让gunicorn在docker compose文件中使用nginx。我的python代码只是一个flask CRUD应用程序

我的flask应用程序的入口点是./flask_app/app.py,我为docker compose yaml文件提供了以下内容

version: '3'

services:

  flask_app:
    container_name: flask_app
    restart: always
    build: ./flask_app
    ports:
      - "8000:8000"
    command: gunicorn -w 1 -b :8000 app:server


  nginx:
    container_name: nginx
    restart: always
    build: ./nginx
    ports:
      - "80:80"
    depends_on:
      - flask_app
这是我的应用程序文件

from flask import Flask
from flask_marshmallow import Marshmallow
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config.from_pyfile('config.py')

db = SQLAlchemy(app)
ma = Marshmallow(app)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=6000, debug=True)
然而,当我运行上面的程序时,我得到了以下错误

Recreating ce38627418c1_ce38627418c1_ce38627418c1_ce38627418c1_ce38627418c1_flask_app ... error

ERROR: for ce38627418c1_ce38627418c1_ce38627418c1_ce38627418c1_ce38627418c1_flask_app  Cannot start service flask_app: OCI runtime create failed: container_linux.go:296: starting container process caused "exec: \"gunicorn\": executable file not found in $PATH": unknown

ERROR: for flask_app  Cannot start service flask_app: OCI runtime create failed: container_linux.go:296: starting container process caused "exec: \"gunicorn\": executable file not found in $PATH": unknown
ERROR: Encountered errors while bringing up the project.
据我所知,它似乎不是我的
app=Flask(\uuuu name\uuuu)
变量,我不知道为什么。我的方法基于这个工作示例

有人有什么想法吗


编辑:在我的flask_应用程序目录中,我有一个docker_compose文件指向的Dockerfile。下面是它的外观:

FROM python:3.6.2

RUN mkdir -p /flask_app/app
WORKDIR /flask_app/app
COPY . /flask_app/app
RUN pip install --no-cache-dir -r requirements.txt

COPY . /flask_app/app

这可能不是原始海报问题的解决方案,但如果docker的其他新手在此页面上搜索解决方案,这可能会有所帮助

如果您使用docker compose进行构建,请记住docker compose up实际上并没有重建图像(),因此可能您的旧需求文件(没有gunicorn)仍在使用

要解决此问题,请使用
docker compose build
重新构建,您应该会没事的


希望这对某人有所帮助。

将您的docker文件包含在flask\u应用程序目录中在我的flask\u应用程序目录中,我有一个docker compose指向的docker文件,如果这是您的意思的话。我会在问题中包括这一点,让问题更清楚。嘿,病人普拉提普斯!你安装了gunicorn吗?嘿!我在虚拟环境中安装了gunicorn,并将其包含在我的需求文件中。啊……显然,出于某种原因,我正在缓存一个不包含gunicorn的旧requirements.txt文件。太傻了:<问题解决了