赞
踩
使用Jenkins部署flask服务,配置好shell脚本后,可以直接通过操作Jenkins面板的方式控制服务器,快速发布项目。配合git使用,可以指定拉取git分支发布。
shell命令
cd /www/wwwroot/my_project # 进入工作目录 echo "准备清理Gunicorn进程" for id in `cat gunicorn.pid`;do # 根据pid文件 循环关闭进程 kill -9 $id done echo "结束清理Gunicorn进程" rm -rf * # 删除代码 cd /www/wwwroot mv jenkins_auto_pull_proj/* my_project # 将Jenkins自动拉取的项目文件更名 cd /www/wwwroot/my_project # 进入工作目录 export FLASK_ENV=test # 声明环境变量 echo "开始安装requirements.txt" pip install -r requirements.txt -i https://pypi.douban.com/simple/ # 安装依赖 echo "结束安装requirements.txt" # 使用nohup和gunicorn的方式运行项目 # gunicorn-test.py为指定的gunicorn配置文件 nohup gunicorn -c gunicorn-test.py -e FLASK_ENV=test app:app >flaskrun5704.nohup 2>&1 &] ...
使用gunicorn方式部署时,需要指定配置文件
# 导入线程、文件io 模块 import multiprocessing import os # 指定绑定的ip和端口 bind = "0.0.0.0:7003" # 根据cpu的核数指定进程数 workers = 2 * multiprocessing.cpu_count() + 1 # 指定工作模式 worker_class = "gevent" timeout = 60 # 记录进程启动后的pid文件 下次发布时关闭原有进程 pidfile = os.path.dirname(os.path.abspath(__file__)) + "/gunicorn.pid" accesslog = os.path.dirname(os.path.abspath(__file__)) + "/gunicorn_acess.log" errorlog = os.path.dirname(os.path.abspath(__file__)) + "/gunicorn_error.log"
使用nohup模式直接部署项目
这种方式使用flask自带的服务器发布,对于多线程多进程支持不友好,只在测试时使用
cd /www/wwwroot/my_project
rm -rf *
cd /www/wwwroot
mv my-project-tmp/* my_project
cd /www/wwwroot/my_project
export FLASK_ENV=test
export FLASK_APP=my_project.main
pip install -r requirements.txt -i https://pypi.douban.com/simple/
nohup flask run -p 5800 --host=0.0.0.0 >flaskrun5800.nohup 2>&1 &] ...
nohup:后台执行shell命令,结果输出到指定文件夹
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。