Docker安装Jenkins,它不香吗?

前言

    Jenkins安装方式有很多,大概可以分为下面这几种:Jenkins.war包安装-> docker安装Jenkins ->Rancher拉取镜像安装。第三种安装方式和第二种本质是一样的,之所以会用到第三种,是因为一个悲伤的故事。
    本来Jenkins是使用Docker安装在公司的一台服务器上的,但是那台服务器上部署了k8s的服务。由于平时没太注意Jenkins占用的内存的问题,影响到开发那边的服务,然后这台服务器上安装的Jenkins容器就被惨烈删掉了。(还是周末被删掉的,周一没看到报告才发现,一脸懵)。
    后来按照删我容器的领导要求,就把Jenkins通过Rancher来管理,后续就可以看到Jenkins占用的内存及CPU的情况,避免影响开发的服务。
在这里插入图片描述

    然后下面给大家介绍一下使用Docker如何安装Jenkins,以及安装Jenkins一些相关的配置,并有构建项目的基本配置。(安装环境是在我本地的虚拟机上)。

  • 安装环境:CentOS 7
  • 内存:2GB
  • 硬盘:30GB

一、安装Docker

    第一步是安装Docker,这里由于是在本地虚拟机上,所以进行了一些相关操作。如果是在服务器上,一般来说都是安装了Docker环境,所以可以根据实际情况来看是否省略这一步。

1.1 配置yum

  • 更新yum(需要root权限)
[root@localhost yff]# yum -y update
  • 安装必要的包
[root@localhost yff]# yum install -y yum-utils device-mapper-persistent-data lvm2
  • yum设置阿里仓库
[root@localhost yff]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.2 yum安装docker

  • 查看docker-ce
[root@localhost yff]# yum list docker-ce --showduplicates | sort -r
  • 安装docker
[root@localhost yff]# yum install docker-ce-18.03.1.ce
  • 启动Docker服务并加入开机启动
/启动Docker服务
[root@localhost yff]# systemctl start docker
//Docker开机自启动
[root@localhost yff]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
//查看Docker服务是否启动
[root@localhost yff]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ES
[root@localhost yff]# vim /etc/docker/daemon.json
//添加或修改
{
  "registry-mirrors" : [
    "http://registry.docker-cn.com",
    "http://docker.mirrors.ustc.edu.cn",
    "https://9cpn8tt6.mirror.aliyuncs.com",
    "http://hub-mirror.c.163.com"
  ],
  "insecure-registries" : [
    "registry.docker-cn.com",
    "docker.mirrors.ustc.edu.cn"
  ],
  "debug" : true,
  "experimental" : true
}
  • 重启Docker服务
//进程
[root@localhost yff]# systemctl daemon-reload
//docker服务重启
[root@localhost yff]# systemctl restart docker

二、Dcoker安装Jenkins

2.1 拉取Jenkins镜像

  • 拉取镜像
[root@localhost yff]# docker pull jenkins/jenkins:lts
  • 查看拉取镜像
[root@localhost yff]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jenkins/jenkins     lts                 a3f949e5ebfd        3 weeks ago         582MB

2.2 镜像生成容器

  • 生成Jenkins的docker容器
[root@192 yff]# docker run --name jenkins -p 8080:8080 -v /home/jenkins:/var/jenkins jenkins/jenkins:lts

    这个命令执行完后结尾处会有一个提示,提示了初始密码初始密码文件路径。可以先复制初始密码,为后面使用。在这里插入图片描述

  • 查看已经生成的容器
[root@192 yff]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                        PORTS               NAMES
578a9bdfe6fa        jenkins/jenkins:lts   "/sbin/tini -- /usr/…"   3 minutes ago       Exited (129) 10 seconds ago                       jenkins
  • 查看运行的容器
[root@192 yff]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

2.3 启动Jenkins容器

  • 启动容器
//docker start [容器 id]
[root@192 yff]# docker start 578a9bdfe6fa

2.4 删除容器

//停止容器
docker stop [容器 id]
//删除容器
docker rm [容器 id]

三、Jenkins配置及插件安装

3.1 访问及配置密码

  • 访问Jenkins

    通过ip地址Jenkins容器端口来访问Jenkins。例如http://192.168.30.142:8080/在这里插入图片描述

  • 填写密码

    一种是前面生成容器后,提示语句中已经将密码复制出来后,这里就可以直接填写。另一种就是按照提示路径进入jenkins容器中,查看提示文件内容即可。

//进入提示路径查看密码,查看密码需要输入命令进入容器
//docker exec -u 0 -it [容器 id] /bin/bash
[root@192 yff]# docker exec -u 0 -it 578a9bdfe6fa  /bin/bash
root@578a9bdfe6fa:/# 
//查看密码
root@578a9bdfe6fa:/# cat /var/jenkins_home/secrets/initialAdminPassword
    054a52cbdbaf45c2b6a56e001ab721ac

3.2 安装插件

    一般是会安装默认的插件,如果网速不佳可以跳过这个默认安装的流程,后面去插件管理安装需要的插件。经常会用到的插件有下面这些。

Ant Oracle Java SE Development Kit Installer GitHub Branch Source GitLab
Maven Integration SSH Slaves Subversion Localization: Chinese (simplified)
Locale Email Extension Template HTML Publisher

3.3 配置jdk、mvn、git

//配置方式:点击系统管理->全局工具配置 其中别名可以随便写,路径填写服务器中容器

//1.jdk配置
//进入Jenkins容器中
[root@localhost yff]# docker exec -it 578a9bdfe6fa /bin/bash
//查看jdk路径
jenkins@578a9bdfe6fa:/$ echo $JAVA_HOME
/usr/local/openjdk-8

//2.git配置
//进入Jenkins容器中
[root@localhost yff]# docker exec -it 578a9bdfe6fa /bin/bash
//查看git路径
[root@localhost yff]# docker exec -it 578a9bdfe6fa /bin/bash
jenkins@578a9bdfe6fa:/$ which git
/usr/bin/git

//3.maven配置
填写name名称,勾选自动安装,版本选择最新版

在这里插入图片描述

3.4 配置中文显示

点击 系统管理->全局配置->找到Locale,输入zh_CN,并勾选 忽略浏览器...选项

在这里插入图片描述

3.5 邮件相关配置

  • 配置Extended E-mail Notification
点击 系统管理->全局配置->找到Extended E-mail Notification(我这里配置的是我的QQ邮箱)
# SMTP server SMTP 服务器
smtp.qq.com

# Default user E-mail suffix 默认用户邮箱后缀
@qq.com

# 勾选 Use SMTP Authentication 表示使用 SMTP 认证

# User Name 用户,这里填写qq邮箱
[email protected]

# Password 填写 smtp 授权码,这个得在邮箱中获取
xxxxxx

# 勾选 Use SSL

# SMTP port 填写
465

# Default Content Type 默认内容类型选择
HTML (text/html)

# Default Recipients 默认接收人
邮箱号

# Default Subject 默认主题填写
${BUILD_STATUS} - ${PROJECT_NAME} - Build # ${BUILD_NUMBER} !

# Default Content 默认内容用 html 写,这个请见下方的 html 代码

# 勾选 Allow sending to unregistered users 允许发送给未注册用户

Default Content.txt
在这里插入图片描述

  • 配置E-mail Notification(邮件通知)
# SMTP server SMTP 服务器
smtp.qq.com

# 用户默认邮件后缀
@qq.com

# 勾选使用 SMTP 认证

# 用户名填写 qq 号
[email protected]

# 密码填写 smtp 授权码,这个在邮箱中获取
xxxxxx

# 勾选使用 SSL 协议

# SMTP 端口
465

# 勾选通过发送测试邮件测试配置,在 Test e-mail recipient 中填写个人邮箱用来接收验证。
若显示 Email was successfully sent 表示成功

如果测试不通过,就在Location中配置系统管理员邮件地址
[email protected]

在这里插入图片描述
在这里插入图片描述

四、Jenkins构建项目

4.1 构建项目

新建任务->输入名称(尽量不要填写中文)->选择自由风格。

4.2 配置_General(构建参数)

  • 勾选Discard old builds(抛弃老的构建),最大构建天数写10。
  • 勾选This project is parameterized,添加构建的参数化。

4.3 配置_源码管理

  • 源码管理选择Git,URL填写对应项目URL
  • Credentials 填写凭证,点击添加,类型选择SSH Username with private key
//范围选择全局
//Username填写猪齿鱼的用户名
[email protected]
//Private Key填写私钥
私钥可以查看本地C:\Users\YFF\.ssh\id_rsa文件
//Passhrase填写登录猪齿鱼的密码

在这里插入图片描述

  • 分支选择,默认选择Master,这里填写
//默认为
*/master
//这里修改为
*/dev-latest

4.4 配置_构建触发器

这里选择Build periodically(定时构建),这里填写每天早上4点启动。0 4 * * *

4.5 配置_构建环境

勾选Delete workspace before build starts即可

4.6 配置_构建

//选择Invoke top-level Maven targets
//Maven版本选择Jenkins配置中的Maven
//目标填写,因为 job 拉取到的项目中直接就含有 pom,
//而不是拉取到的项目中下一层或下面多层中含有 pom
-X clean test

4.7 配置_构建后操作

  • Publish HTML reports 发布 html 报告
//选择Publish HTML reports

# HTML directory to archive 选择什么样的文件来存档,我这里选择了项目产生 html 报告
target/test-output

# Index page[s] 具体文件名
index.html

# Index page title[s] (Optional) 主页标题自起名

# Report title 报告标题自起名
  • E-mail Notification 邮件通知(构建不稳定时邮件通知)
//填写自己的邮箱
[email protected]
  • Editable E-mail Notification 邮件通知
# Project Recipient List 项目收件人列表
填写邮箱,多个邮箱之间用;分隔,如果是抄送,就在邮箱前面加上cc:即可。例如
[email protected];cc:[email protected];

# Content Type 类型选择了 HTML (text/html)

# 其他采用默认

# Attachments 文件附属填写了如下,这个地址其实就是我项目中产生的报告
target/test-output/report/*.html

//Attach Build Log 附上构建日志我选上的就是 Attach Build Log
# 点击 Advanced Settings... 进一步配置
# 进一步配置中其他采用默认的
# Triggers 中选择 Always,Send To 中选择 Recipient List 和 Developers 即可

猜你喜欢

转载自blog.csdn.net/qq_37688023/article/details/105934301