加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Docker / Docker-Compose上理解Gunicorn和Flask

发布时间:2020-12-16 03:41:15 所属栏目:安全 来源:网络整理
导读:我在使用Docker-compose让Flask和Gunicorn在Docker上正常工作时遇到了麻烦 Dockerfile: FROM ubuntu:latestMAINTAINER Kyle Calica "Kyle Calica"RUN apt-get update -yRUN apt-get install -y python3-dev build-essential python-pip gunicornRUN pip ins

我在使用Docker-compose让Flask和Gunicorn在Docker上正常工作时遇到了麻烦

Dockerfile:

FROM ubuntu:latest
MAINTAINER Kyle Calica "Kyle Calica"
RUN apt-get update -y
RUN apt-get install -y python3-dev  build-essential python-pip gunicorn
RUN pip install --upgrade setuptools
RUN pip install ez_setup
COPY . /app
WORKDIR /app
RUN pip install -r ./app/requirements.txt
CMD [ "gunicorn","-b",":8000","run" ]

Docker,Compose.yml:

version: '2'
services:
 web:
  build: .
  volumes:
  - ./:/var/www/crypto
  ports:
   - "5000:5000"

run.py:

from app import app
app.run()

根据我的理解,Gunicorn master将在容器中的所有接口上的端口8000上运行

然后它将生成一个节点,在127.0.0.1/localhost的容器中的端口5000上运行.

从那里我将容器中的端口5000链接到我的hostport 8000

我希望从我的主机上看到我的应用程序,网址是http://127.0.0.1:8000
相反没有任何事情发生,似乎没有任何联系.

我以前做过这个,但不记得我做了什么不同.

(env)paper-street:CoinSlack kyle $gunicorn -b:8000 run
[2017-09-16 17:43:59 -0700] [15402] [INFO]启动gunicorn 19.7.1
[2017-09-16 17:43:59 -0700] [15402] [信息]收听:http://0.0.0.0:8000(15402)
[2017-09-16 17:43:59 -0700] [15402] [INFO]使用worker:sync
[2017-09-16 17:43:59 -0700] [15405] [信息]带pid的启动工人:15405
?*在http://127.0.0.1:5000/上运行(按CTRL C退出)

^原因是因为它似乎产生了一个工人并在端口5000运行它,我无法通过端口8000访问我的应用程序

最佳答案
app.run()和gunicorn是运行网络服务器的两种方式.第一个是Flask开发服务器,它对开发很有用,但不应该在生产中部署.你不应该同时运行这两个.

gunicorn应该指向app对象,以便它可以导入它并使用它来运行web服务器本身.这就是它所需要的一切.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读