【Jenkins-初识篇】容器快速部署Jenkins,创建流水线-Blue Ocean可视化界面展示

简介: 【Jenkins-初识篇】容器快速部署Jenkins,创建流水线-Blue Ocean可视化界面展示

前言

作者主页https://blog.csdn.net/qq_48450494?type=blog

个人博客http://ygcloud.work/

Jenkins 是一个持续集成工具,可用于自动化与构建、测试、交付或部署软件相关的各种任务。

Jenkins 可以通过本机系统包、Docker 安装,甚至可以由任何安装了 Java 运行时环境 (JRE) 的机器独立运行。

持续集成工具还有Drone、Gitlab-CICD(gitlab内置cicd)还要kubesphere容器云平台也能做持续集成(CICD)kubesphere是借助于Jenkins来实现CICD,本身没有该功能。

本章就带各位简单搭建Jenkins和使用Jenkins+Blue Ocean及编写Jenkinsfile流程。


Drone使用,请点击这里【Drone-初识篇】Drone借助GitLab构建CICD环境、以及编写 .drone.yaml 流水线

学习kubesphere前,强烈建议阅读【排坑指南之kubeSphere】2022年最新版-”kubeSphere3.2.1 Paas容器云平台“使用DevOps-CICD之”排坑指南“

准备篇

硬件要求

  • 最小256MB内存, 推荐512MB以上
  • 10GB硬盘空间

环境要求

  • Linux系统
  • docker
  • docker-compose

安装使用docker-compsoe点这里

操作篇

部署

这里介绍了三种方式部署,其他方式部署(WAR包部署、yum部署);

下面我们使用 jenkinsci/blueoceanDocker镜像运行,因为jenkinsci/blueocean集成了blueocean,省去Jenkins内部安装blueocean插件的步骤(方便快捷)。

  1. 使用docker部署
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命令,不能与守护进程通信);

  1. 使用docker-comopse部署

不会docker-compsoe点这里

在宿主机编写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
  1. kubernetes方式部署

参考地址:https://www.jenkins.io/doc/book/installing/kubernetes/

使用

  1. 浏览器访问 宿主机ip+8080端口:

出现如下页面我们可以使用两种方式查看密码:

  • 查看宿主机上的密码文件(图片上是容器内的密码文件路径)
$ cat /var/jenkins-data/secrets/initialAdminPassword
3b1050b5ebbb4539a14588f0601e163b
  • 使用查看jenkins启动日志方式,查看密码,如下图(两个星号中间)
$ docker logs jenkins

  1. 选择安装推荐的插件

    这里需要等待几分钟(这里如果出现错误,检查一下网络是否可以上网):

  2. 创建管理员用户后,实例配置保持默认

流水线

创建多分支流水线

下面我们会使用多分支流水线、Jenkinsfile、Blue Ocean;

  • 多分支流水线创建时会检查代码仓库所有分支的流水线任务(Jenkinsfile);
  • 在创建流水线之前还需要明白一个概率叫Jenkinsfile,因为接下来的步骤在它基础之上(核心);
  • Blue Ocean是Jenkins Pipeline可视化界面,提高Jenkins用户体验;

官方定义:Jenkins Pipeline 用于将“简单到复杂”的交付流程实现为“持续交付即代码”。Jenkins Pipeline 的定义通常被写入到一个文本文件中(称为 Jenkinsfile ),该文件可以被放入项目的源代码控制库中;

总结一句话:Jenkinsfile是一个文本文件记录Pipeline (流水线)的执行Job(任务)的步骤;

  • 创建多分支流水线:点击新建Item–>输入任务名称–>选择多分支流水线–>点击确定,如下图所示;


  • 分支源:添加git仓库地址–>创建jenkins凭证–>点击保存;

这里仓库地址使用的是国内gitee(码云)仓库(拉取代码比较快),当然也可以使用github、gitlab、gogs等仓库服务器;

学习搭建gitlab个人仓库服务器,点击这里

本案例使用的gitee代码仓库地址(包含Jenkinsfile文件内容)各位自行获取吧!!!

点击保存后,Jenins会自动扫描运行Jenkinsfile文件任务;检查输出Log最后的状态是否出现 Finished: SUCCESS 字段(表示完成);

点击状态查看

打开Blue Ocean查看

Blue Ocean显示所有Jenkinsfile的阶段都成功完成(使用Blue Ocean创建流水线也是可以的)

总结

这里的演示的Jenkinsfile很基础,想深入学习Jenkinsfile请参考官方文档;

使用Jenkinsfile创建流水线的流程介绍完毕,各位快去试着学习部署自己的项目吧!!!

参考资料

https://www.jenkins.io/zh/doc/


目录
打赏
0
0
0
0
16
分享
相关文章
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
336 108
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
2025年热门Web化容器部署工具对比:Portainer与Websoft9。Portainer以轻量可视化管理见长,适合技术团队运维;Websoft9则提供一站式应用部署与容器管理,内置丰富开源模板,降低中小企业部署门槛。两者各有优势,助力企业提升容器化效率。
103 1
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
Docker化运维:容器部署的实践指南
Docker化运维:容器部署的实践指南
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
269 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
容器化AI模型的持续集成与持续交付(CI/CD):自动化模型更新与部署
在前几篇文章中,我们探讨了容器化AI模型的部署、监控、弹性伸缩及安全防护。为加速模型迭代以适应新数据和业务需求,需实现容器化AI模型的持续集成与持续交付(CI/CD)。CI/CD通过自动化构建、测试和部署流程,提高模型更新速度和质量,降低部署风险,增强团队协作。使用Jenkins和Kubernetes可构建高效CI/CD流水线,自动化模型开发和部署,确保环境一致性并提升整体效率。
【赵渝强老师】数据库不适合Docker容器化部署的原因
本文介绍了在Docker中部署MySQL数据库并实现数据持久化的方法,同时分析了数据库不适合容器化的原因。通过具体步骤演示如何拉取镜像、创建持久化目录及启动容器,确保数据安全存储。然而,由于数据安全性、硬件资源争用、网络带宽限制及额外隔离层等问题,数据库服务并不完全适合Docker容器化部署。文中还提到数据库一旦部署通常无需频繁升级,与Docker易于重构和重新部署的特点不符。
270 18
【赵渝强老师】数据库不适合Docker容器化部署的原因

推荐镜像

更多
AI助理
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问

你好,我是AI助理

可以解答问题、推荐解决方案等