Gitlab: Python项目CI/CD实践
Python项目应用Giltab系统, 进行CI/CD实践,分别以fastapi和kinit项目示例。
目录
1. 说明
- 分别以一个fastapi应用和一个前后端分离的kinit项目为例,制定测试,构建容器镜像,部署(CI/CD)的实现步骤
- 代码管理与自动化部署基于Gitlab系统,部署到装有宝塔的目标服务器以容器方式运行
- 使用流程:
- 提交代码到代码仓库
- gitlab根据.gitlab-ci.yml脚本规则,拉起对应的gitlab-runner工作站进行测试, 构建, 部署
- 发布服务器做反向代理设置以供访问
- 前后端应用皆以镜像发布,以容器微服务方式运行
2. 准备工作
2.1 服务器
- 关于Gitlab服务器的私有化部署,见前文《Gitlab: 私有化部署_gitlab私有化部署-CSDN博客》
2.2 Gitlab Runner工作站
- 分别部署两个Runner, 一个for前端应用(tag:nodejs), 一个for后端应用(tag: python)
- 工作站需预先安装python10, pip, nodejs18, pnpm8
2.3 开发机hosts文件
# gitlab服务器
192.168.0.130 host001.dev.ia
192.168.0.130 gitlab.dev.ia
# gitlab-runner工作站与部署服务器
192.168.0.131 host002.dev.ia
192.168.0.131 fastapi-t1.dev.ia
192.168.0.131 kinit-api-t1.dev.ia
192.168.0.131 kinit-admin-t1.dev.ia
2.4 项目
名称 | fastapi-t1 |
说明 | fastapi 框架测试项目 |
自定义域名 | fastapi-t1.dev.ia |
仓库路径 | http://host001.dev.ia:18181/dev1/fastapi-t1.git |
镜像路径 | host001.dev.ia:5050/dev1/fastapi-t1:latest |
目录结构 | ./fastapi-t1/ ├── README.md |
运行命令行 | uvicorn app.main:app --reload |
Dockerfile | 见附件 |
.gitlab-ci.yml文件 | 见附件 |
名称 | kinit 后端api应用 |
说明 | 为kinit提供api支持 |
自定义域名 | kinit-api-t1.dev.ia |
仓库路径 | http://host001.dev.ia:18181/dev1/kinit-api-t1.git |
镜像路径 | host001.dev.ia:5050/dev1/kinit-api-t1/dev:latest |
部署相关文件目录 | kinit-api ├── .gitlab-ci.yml ├── Dockerfile |
运行命令行 | python main.py run |
Dockerfile | 见附件 |
.gitlab-ci.yml文件 | 见附件 |
名称 | kinit 前端应用 |
说明 |
|
自定义域名 | kinit-admin-t1.dev.ia |
仓库路径 | http://host001.dev.ia:18181/dev1/kinit-admin-t1.git |
镜像路径 | host001.dev.ia:5050/dev1/kinit-admin-t1/dev:latest |
部署相关文件目录 | kinit-admin ├── .gitlab-ci.yml ├── Dockerfile ├── nginx ├──nginx/default.conf |
运行命令行 | pnpm run dev |
Dockerfile | 见附件 |
.gitlab-ci.yml文件 | 见附件 |
3. 步骤过程
3.1 建仓Fastapi T1
如图:镜像仓库ready
3.2 开发机测试构建与推送
3.3 在工作站添加gitlab-runner
说明:当代码提交后,遇到含有tag=python的.gitlab-ci.yml时调用该runner执行任务
* gitlab-runner所在的工作站需预先安装pip工具
3.4 提交代码,查看Pipelines结果
3.5 观察部署情况
设置子域名与反向代理后访问:
http://fastapi-t1.dev.ia/docs
http://kinit-api-t1.dev.ia/docs
http://kinit-admin-t1.dev.ia/dashboard/workplace
4. 参考
- Error "Host key verification failed." - GitLab CI/CD - GitLab Forum
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)