Docker danriti/nginx-gunicorn-flask 使用
现成的镜像,已经配置好nginx-gunicorn-flask,可直接部署flask 项目
- 直接部署flask项目
安装镜像
- 如果默认源比较慢,可以换成163镜像源
http://hub-mirror.c.163.com
docker pull danriti/nginx-gunicorn-flask
运行镜像,将flask项目映射到容器
- 映射项目到容器
/usr/share/nginx/www/
这个是nginx默认的目录- -P --expose 90 这里指定容易要映射出来的端口为80
docker run -it -P --expose 80 --name gunicorn1 -v $PWD/flaskDemo2:/usr/share/nginx/www/flaskDemo2 danriti/nginx-gunicorn-flask
- 映射日志到本机
/var/log/nginx
这个是nginx日志目录,可以映射出来docker run -it -P --expose 80 --name gunicorn2 -v $PWD/flaskDemo2:/usr/share/nginx/www/flaskDemo2 -v $PWD/log:/var/log/nginx danriti/nginx-gunicorn-flask
进入镜像
-
docker exec -it gunicorn1 bash
-
查看flask项目
cd /usr/share/nginx/www/flaskDemo2
-
如果一切正常,可以直接运行项目,但是外部不能直接访问
-
手动运行项目
gunicorn -w 4 -b wsgi:app
默认访问路径 http://127.0.0.1:8000/ -
wsgi 是文件名,app是入口
app = Flask(__name__)
# -*- coding:utf-8-*-
# wsgi.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "name"
@app.route("/register")
def register():
return "hello register"
if __name__ == '__main__':
app.run()
配置nginx
- 如果要在外部访问,要配置nginx
/etc/nginx/sites-available/
目录下有配置文件 flask.conf- 将80端口的访问转发到8000
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
手动运行项目
- 启动容器后,进入项目目录,手动运行项目就行
- gunicorn -w 4 -b wsgi:app
TODO: 有时间研究一下自动启动项目
本文来自博客园,作者:struggle_time,转载请注明原文链接:https://www.cnblogs.com/songliquan/p/10892790.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2015-05-20 IOS开发学习笔记029-反选、全选、删除按钮的实现