运行方式
1、Jenkins 安装docker,使用三方docker
- 付费
2、jenkins安装docker客户端,
- docker in docker,特权模式
3、直接使用宿主机的docker服务
优点:方便,简单,直观
确定:Jenkins可以全权管理所有的容器,包括自己,
docker如何运行:
docker-cli
docker.sock
docker-server
Jenkins挂载运行+docker
1 | docker run \n |
Demo1-Web自动化
基于docker的web部署
python + Git + Jenkins + Docker + Allure
pytest + selenium + Allure Web自动化测试
1 | docker run --shm-size 2G ccr.ccs.tencentyun.com/beifang/ui_framework:v1 |
生成报告(下载)
1、不知都 生成的结果在那
2、不知道 结果的权限?
docker –> host –> jenkins
A. Jenkins,挂载host目录
共享文件夹 777 jenkins_home/workspace
1 | docker run \n |
B. 任务docker,挂在共享文件夹
1 | mkdir -p allure_results && chown 777 allure_results |
权限不足:
Demo2-前端部署
A.docker 容器部署
1 | version: '3' |
nginx config
1 | error_log /var/log/nginx/error.log notice; |
B. 配置
- 根据提示找到密码复制粘贴
通过这个命令可以获取,/root/jenkins/jenkins_home为挂载目录
cat /root/jenkins/jenkins_home/secrets/initialAdminPassword - 安装推荐的插件
- 设置管理员账号
然后就可以愉快的使用Jenkins了
接着点击系统管理->插件管理,需要在Jenkins安装两个插件:
- 安装 Publish Over SSH 作用: 将构建后的编译产出发布到服务器
- 安装Generic Webhook Trigger Plugin作用:通用 Webhook 触发器构建
C. 新建一个Jenkins构建任务
关联的git仓库有了推送事件之后触发的构建
系统管理->全局工具配置,安装nodejs
构建shell
node -v #查看node,npm 版本 npm -v npm i #npm安装项目所需依赖 npm install hexo-cli -g #npm安装hexo hexo clean #hexo清除缓存文件和静态文件 hexo g #hexo生成静态文件 tar -zcvf public.tar ./public #压缩生成的静态文件目录
1
2
3
4
5
6
7
8
9
### 发布
```shell
cd /root/yarbei/apps #进入文件所在目录
mv yarbeiweb yarbeiweb-$(date +%Y%m%d-%H%M) #将旧的文件夹更名备份
tar zxvf public.tar #解压public.tar
mv public yarbeiweb #将解压后的文件夹改名
rm -rf public.tar #删除压缩包
实践 hexo 编译发布
hexo编译环境打包
1 | /dataraid/apps/webs/DockerFile |
打包
1 | /dataraid/apps/webs/DockerFile |
启动Jenkins容器
1 | docker run \ |
启动Hexo 编译容器(本地测试)
1 | docker run \ |
Jenkins job配置
略
webhook 触发器
1 Jenkins安装General Web Hook插件
2、Jenkins job配置 trigger
3、Jenkins 系统配置白名单
4、gitea 工程,配置hook
1 | http://ip:port/generic-webhook-trigger/invoke?token=blog_hexo_auto" |
5、gitea 配置app.ini (同机器部署,网络不通)
1 | [webhook] |
参考
Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台(持续集成部署Hexo博客Demo) - misakivv - 博客园
docker+Jenkins+nginx实现前端自动部署详细教程-腾讯云开发者社区-腾讯云
从0到1体验Jenkins+Docker+Git+Registry实现CI自动化发布
- git pull -> push to Host-A…
Gitea+K8s-Jenkins-master-slave(webhook钩子)_gitea web钩子-CSDN博客