@toc
作者主页:https://blog.csdn.net/qq_48450494?type=blog
Jenkins 是一个持续集成工具,可用于自动化与构建、测试、交付或部署软件相关的各种任务。
Jenkins 可以通过本机系统包、Docker 安装,甚至可以由任何安装了 Java 运行时环境 (JRE) 的机器独立运行。
持续集成工具还有Drone、Gitlab-CICD(gitlab内置cicd)还要kubesphere容器云平台也能做持续集成(CICD)kubesphere是借助于Jenkins来实现CICD,本身没有该功能。
本章就带各位简单搭建Jenkins和使用Jenkins+Blue Ocean及编写Jenkinsfile流程。
<font color=red size=4>Drone使用,请点击这里</font>:【Drone+Gitlab】一条龙服务,直接起飞 — 从介绍->部署->配置->写.drone.yml流水线+常见的报错解决
<font color=red size=4>学习kubesphere前,强烈建议阅读</font>:【排坑指南之kubeSphere】2022年最新版-”kubeSphere3.2.1 Paas容器云平台“使用DevOps-CICD之”排坑指南“
硬件要求
环境要求
这里介绍了三种方式部署,其他方式部署(WAR包部署、yum部署);
下面我们使用
jenkinsci/blueocean
Docker镜像运行,因为jenkinsci/blueocean
集成了blueocean,省去Jenkins内部安装blueocean插件的步骤(方便快捷)。
docker run \
-u root \
-dit \
--name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-v /var/jenkins-data:/var/jenkins_home \
-v /usr/bin/docker:/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
参数解释:
run: 启动运行一个容器;
-u:root身份启动容器,具有root权限;
dit:后台交互式方式运行容器(常用);
--name:指定容器名称为jenkins; -p:8080是Jenkins web访问界面(容器的端口8080映射到主机上的端口8080);
基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信(容器的端口50000 映射到主机上的端口50000);
-v:
/var/jenkins_home
Jenkins主目录,每次重新启动Jenkins,会保持Jenkins当前状态(存放Jenkins服务器数据);
/usr/bin/docker
宿主机docker命令挂载给容器内使用(我们称为:docker in docker方式);
/var/run/docker.sock
Docker守护程序监听通过基于Unix的套接字文件,这里用于与Dcoker守护进程通信(不添加的话容器内docker命令,不能与守护进程通信);
在宿主机编写docker-compose.yaml文件,文件内容如下;
下列参数具体意思和上述类似,这里不过多赘诉;
version: '3' #定义版本
services:
jenkins:
container_name: jenkins
image: jenkinsci/blueocean:latest
user: root
priveleged: true #开启特权
ports: #定义映射端口
- 8080:8080
- 50000:50000
volumes: #定义挂载卷
- /var/jenkins-data:/var/jenkins_home
- /usr/bin/docker:/usr/bin/docker
- /var/run/docker.sock:/var/run/docker.sock
启动docker-compose对应的文件内容定义的services服务:
$ docker-compose up -d #后台启动
[+] Running 2/2
⠿ Network test_default Created 0.1s
⠿ Container jenkins Started 1.3s
docker-compose常用指令:
$ docker-compose ps #查看状态信息
NAME COMMAND SERVICE STATUS PORTS
jenkins "/sbin/tini -- /usr/…" jenkins running 0.0.0.0:8081->8080/tcp, 0.0.0.0:50001->50000/tcp, :::8081->8080/tcp, :::50001->50000/tcp
$ docker-compose down #停止后移除
[+] Running 2/2
⠿ Container jenkins Removed 0.8s
⠿ Network test_default Removed
参考地址:https://www.jenkins.io/doc/book/installing/kubernetes/
本案例使用的gitee代码仓库地址(包含Jenkinsfile文件内容)各位自行获取吧!!!
点击保存后,Jenins会自动扫描运行Jenkinsfile文件任务;检查输出Log最后的状态是否出现 Finished: SUCCESS 字段(表示完成);
点击状态查看
打开Blue Ocean查看
Blue Ocean显示所有Jenkinsfile的阶段都成功完成(使用Blue Ocean创建流水线也是可以的)
这里的演示的Jenkinsfile很基础,想深入学习Jenkinsfile请参考官方文档;
使用Jenkinsfile创建流水线的流程介绍完毕,各位快去试着学习部署自己的项目吧!!!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。