我们对python的项目部署的做一些约定:
约定
1、打包走研发流水线部署时, jenkins会把源代码从git库下载下来, 然后运行build.sh, 如果site-packages/requirements.txt不为空,会拉取依赖包到本地site-packages目录,接着把整个库都打成app.zip包;
2、部署制作镜像时, 会把之前的app.zip下载下来, 并解压,解压完毕会根据选取镜像的Dockerfile定义来决定是否调用install.sh下载并安装依赖包;
3、服务器部署目录/app/deploy;
4、日志目录/app/deploy/logs;
5、配置文件目录/app/deploy/conf;
6、个性化包依赖文件目录/app/deploy/site-packages
7、容器启动命令container_start.sh;
1、build.sh
打包脚本,如果个性化安装依赖包,那么可以取消注释行并使用pip freeze > requirements.txt生成好依赖文件
conf:配置文件存放目录;
logs:日志文件存放目录;
2、install.sh:
镜像从python基础镜像继承,默认是python3,如果所选取的镜像版本不支持安装个性化依赖包,建议通过个性化镜像方式来执行本脚本......
3、container_start.sh
可以个性化修改启动脚本,如果基础镜像不提供个性化依赖包安装功能,可以取消注释行就可以实现在容器启动的时候先安装依赖包.....
4、验证方法:
curl http://localhost:8080/status
OK
## 项目发车指引
1. git clone XXX 下载项目
2. 安装poetry【参照官网步骤安装即可】,并配置环境变量
3. 设置poetry:进入命令行输入`poetry config virtualenvs.in-project true`
4. 安装依赖:终端进入项目目录下运行`poetry install`
5. 本地调试请使用:`python manage.py runserver --settings mqsp.dev`