【Python Web】Jenkins发布Flask项目相关Shell脚本和配置文件

使用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命令,结果输出到指定文件夹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值