Docker 搭建 Jenkins 服务

1. Docker 搭建 Jenkins 服务

Jenkins 是一种持续集成的工具,提供了一个开放易用的软件平台,用于监控持续重复的工作。

1. Jenkins 镜像

查找 Jenkins 镜像:

bash 复制代码
# 查找 Jenkins 镜像
docker search jenkins

在线拉取 Jenkins 镜像:

bash 复制代码
# 在线拉取 Jenkins 镜像
docker pull jenkins/jenkins:version

查看镜像:

bash 复制代码
# 查看镜像
docker images

2. 启动容器

创建本地挂载目录:

bash 复制代码
# 创建本地挂载目录
mkdir -p /home/${user}/jenkins/jenkins_var

# 给挂载目录最高权限
chmod -R 777 /home/${user}/jenkins/jenkins_var

执行命令:

bash 复制代码
docker run -d \
  -p 8880:8080 \
  --name myjenkins \
  -v /home/ubuntu/jenkins/jenkins_var:/var/jenkins_home \
  --restart=on-failure \
  jenkins/jenkins:version

命令解释

  • -d:守护模式
  • -uroot:使用 root 身份进入容器,推荐加上,避免容器内执行某些命令时报权限错误
  • -p:主机 8880 端口映射容器的 8080 端口,后面访问 jenkins 直接访问主机 ip 就行了,不需要加 8080 端口
  • -v:目录映射
  • --name:自定义一个容器名称

查看容器是否运行:

bash 复制代码
# 查看容器是否运行
docker ps

3. 解锁 Jenkins

浏览器访问 Jenkins:http://192.168.22.8880;

查看密码:

bash 复制代码
# 进入 jenkins 终端
docker exec -it -uroot myjenkins bash

# 查看密码
cat /var/jenkins_home/secrets/initialAdminPassword

2. Jenkins 常用插件的安装

使用 Jenkins 完成自动化的持续集成,需要安装自动化测试的相关插件。

1. 在线安装

1. 安装 git 插件

2. 安装 SSH 插件

安装完成后,还需要配置启用 SSH Server,先进入安全配置:

3. 安装邮件发送插件

4. 安装 Allure 报告插件

5. 安装 HTML 插件

2. 离线安装

在线安装会自动下载插件的相关依赖并安装,而离线安装需要手动把所有的依赖包都下载好才能安装。

插件下载地址:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/

https://mirror.xmission.com/jenkins/plugins/

插件下载完成后,进行安装:

3. Jenkins 添加子节点

节点是 Jenkins 任务执行的具体环境,通常在安装 Jenkins 这台服务器默认是一个主节点,其它相对于这台安装 Jenkins 的服务器都称为从节点。

1. 配置原因

同一时间需要多台机器执行 Jenkins 任务,多态服务器都需要纳入到 Jenkins 管理的节点里才可以通过 Jenkins 管理。

不同的 Jenkins 任务要求的操作环境不同,有的需要 windows,有的需要 IOS,有的需要 Linux,为了满足任务执行需求,需要准备不同操作系统的节点。

2. 前置准备

准备一台物理机,要求可以和主节点通信,因为节点需要 java 环境,需要提前安装 jdk;

开启从节点的 SSH 服务远程访问权限;

以 window 系统为例:

1. 安装 OpenSSH

找到 OpenSSH 进行添加;

2. 开启服务

以管理员权限运行 cmd,执行命令:

bash 复制代码
net start sshd

3. 设置开机自启

按下 【win】 + R,输入 【service.msc】:

搜索 【OpenSSH SSH Server】服务,右键【属性】,将启动类型改为自动:

4. 验证 SSH 是否开启

查看当前用户:

在主节点上通过 ssh 远程连接从节点:

bash 复制代码
ssh 26490@192.168.22.1

如果这里使用的是微软账号密码,是没办法连接的,可以考虑再创建一个账号;

3. Jenkins 添加子节点

4. 节点配置

windows 目录一定要创建在 C 盘,因为 Jenkins 默认访问的是 C 盘目录;

配置启动方式,选择 SSH,进行凭证设置:

查看子节点状态:

4. Jenkins 新建项目

1. 新建 Item

2. 项目运行设置

限制项目运行节点:

创建新的凭证:

填写 gitlab 仓库地址,选择用户,选择分支:

配置触发设置:

Jenkins 的定时任务用的是 crontab 语法:

bash 复制代码
* * * * *

第一颗*表示分钟,取值0~59
第二颗*表示小时,取值0~23
第三颗*表示一个月的第几天,取值1~31
第四颗*表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

构建配置:

配置项目运行的命令行:

设置完成之后,点击保存;

3. 立即构建

查看 构建详情:

查看控制台输出:

5. Jenkins 展示自动化测试报告

1. 创建全局的 Allure Commandline

名字可以自定义,要选择版本和保存;

2. 添加构建后步骤

配置测试数据保存的位置:

3. 报告展示

构建完成后,报告可正常展示:

6. Jenkins 自动发送邮件

1. 设置 Jenkins 地址和管理员邮箱

2. 设置发件人消息

增加凭证:

QQ邮箱 生成授权码:

3. 构建任务增加构建后操作

设置收件人:

设置内容:

默认内容:

bash 复制代码
<h1><center><font>以下是Jenkins自动发送的邮件,请勿回复!</font><center></h1>

<h3><center><font color="red">allure报告在线查看or下载allurereport.zip用firefox离线查看,测试用例见附件</font><center></h3>
<br>


<hr>
<br>

项目描述: ${JOB_DESCRIPTION}<br>

<br>

<hr>
项目名称: $PROJECT_NAME<br>
构建编号: $BUILD_NUMBER<br>
构建状态: $BUILD_STATUS<br>
触发原因: ${CAUSE}<br>
构建地址: <A HREF="${BUILD_URL}">${BUILD_URL}</A><br>
构建日志地址: <A HREF="${BUILD_URL}console">${BUILD_URL}console</A><br>
系统allure测试报告: <A HREF="${PROJECT_URL}${BUILD_NUMBER}/allure">${PROJECT_URL}${BUILD_NUMBER}/allure</A><br>
<hr>
${JELLY_SCRIPT}

设置邮件发送时机:

4. 测试

相关推荐
程序员夏洛1 小时前
VMware Workstation Pro 卸载失败:安装向导提前结束、错误 1603 的排查与解决
java
User_芊芊君子1 小时前
【JavaEE初阶 - 网络原理】网络分几层?从自定义协议聊到 DNS
java·网络·java-ee
聚美智数8 小时前
智能结构化识别-图片结构解析-图像结构化解析-照片结构化解析
android·java·数据库
十年Java程序媛8 小时前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
JavaPub-rodert8 小时前
Docker 日志为什么能把磁盘写爆?讲透 json-file、local、journald、日志轮转与 docker logs
docker·eureka·json
我是人✓8 小时前
SpringBoot静态资源映射揭秘
java·spring boot·后端
土豆.exe9 小时前
nf_tables 的 verdict 被读了两次:一个十年未闭合的位域错配
java·数据库·网络安全·缓存
人生匆匆9 小时前
docker部署ceph集群
ceph·docker·容器
小坏讲微服务10 小时前
刚发布一个月的JDK 27,为什么我建议你立刻升级?
java·开发语言·spring boot·spring·架构·求职招聘·springboot4
kunicoding10 小时前
多线程编程核心概念详解:从线程基础到并发安全
java·jvm·安全