一、简介

Jenkins是一个开源的自动化服务器软件,用于构建、测试和部署软件项目。它可以通过提供一个易于使用的界面来帮助团队自动化各种软件开发过程中的重复任务,例如构建、测试和部署。Jenkins支持多种编程语言和工具,可以与各种版本控制系统集成,并提供了丰富的插件生态系统,使得用户可以根据自己的需求进行定制。Jenkins在现代软件开发和持续集成/持续交付(CI/CD)实践中被广泛应用。

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_容器

1.1、本章内容简介:

jenkins版本与jdk版本以及各类插件有对应关系,所以普通安装较为麻烦,本章选择使用docker安装jenkins,完成前后端打包部署。
docker安装jenkins通过git拉取前后端代码执行打包,SSH发送到指定服务器上,执行启动脚本完成部署流程。
docker + jenkins + SSH + 前端(VUE) + nginx + 后端 (spring boot)

二、安装docker并启动jenkins容器

2.1、安装docker命令

# 下载
wget -qO- https://get.docker.com/ | sh

# 启动
sudo systemctl start docker

# 重启
sudo systemctl restart docker

2.2、拉取镜像

# 查找jenkins版本
docker search jenkins

# 这里拉去最新版jenkins
docker pull jenkins/jenkins:lts

# 查看版本
docker inspect <image_id>

2.3、启动容器

● 先确认宿主机端口是否被占用

# 方法一:
netstat -tuln | grep 8080

# 方法二:
ss -tuln | grep 8080

# 启动容器
docker run -d --name jenkins -p 8080:8080 -v /jenkins_home:/jenkins_home jenkins/jenkins:lts

-p 8080:8080 :   将容器的8080端口映射到宿主机的8080端口
-v /宿主机目录:/容器目录:  将宿主机目录挂载到容器目录,则在容器中操作时容器目录就是宿主机目录
-i:   以交互模式运行容器,通常与 -t 同时使用;
-t:   为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name=“nginx-lb”:   为容器指定一个名称;

2.4、查看初始密码

# 方法一:查看docker日志记录
docker logs jenkins

# 方法二:进入docker容器内部查看
docker exec -it jenkins bash
cat /var/jenkins_home/secrets/initialAdminPassword
  • 方法一截图:

三、登陆jenkins完成部分配置

  • 输入服务器ip+jenkins宿主机端口
  • jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_容器_02

  • 输入上述记录的密码,点击继续,
  • 新手使用“安装推荐的插件”,并创建账户
  • jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_Jenkins_03


  • jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_maven_04


  • jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_Jenkins_05

四、安装插件

Jenkins 启动成功之后,接下来我们安装必要的插件:

  • Maven Integration:Maven 构建工具
  • Publish Over SSH:整个工具,将来把 Jenkins 打包好的 jar 上传到应用服务器上。
  • Git
  • nodejs

4.1、配置jenkins

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_容器_06


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_Jenkins_07


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_容器_08

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_maven_09

4.2、安装中文插件

  • 新手入门一般会将中文插件已安装好

4.2.1、安装插件

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_jenkins_10


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_Jenkins_11


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_maven_12


安装成功后,就使用docker命令重启下服务。

4.2.2、设置中文

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_maven_13

  1. 重启后进入到配置页面中找到Locale参数位置。
  2. Default Language设置为:zh_CN

4.2.3、效果图

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_jenkins_14

4.2.4、问题

部分中文,部分英文情况

  1. 将语言设定为 zh_US,Jenkins切换为英文。
  2. 重启Jenkins
  3. 再次语言设定为 zh_CN,刷新即可。

五、Jenkins全局工具配置

5.1、配置JDK

  • 方案一:jenkins 自带的openJDK
  • jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_maven_15


  • jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_容器_16


  • jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_容器_17

  • 方案二:
    将下载好的适用于项目的jdk 拷贝到docker 容器中
    docker cp /jdk8 jenkins:/opt/java
    将上图的路径配置成你对于的jdk路径即可。

5.2、配置maven

# 根据需要下载对应版本
wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
# 解压
tar -vxf apache-maven-3.6.3-bin.tar.gz
# 修改文件名
mv apache-maven-3.6.3 maven
# 将解压文件复制到容器内(jenkins只需要指定maven目录,不需要配置环境变量)
docker cp /home/docker/jenkins/maven jenkins:/opt/

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_Jenkins_18

六、SSH服务器配置

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_maven_19


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_jenkins_20

七、Jenkins添加项目

7.1、后端配置

测试项目基于SpringBoot

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_容器_21


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_maven_22


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_maven_23


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_maven_24


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_docker_25


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_jenkins_26

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_maven_27

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_jenkins_28

7.2、前端配置

配置nodejs,这里不用去宿主机上安装配置,直接在jenkins上配置

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_容器_29


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_jenkins_30

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_docker_31


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_docker_32


jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_docker_33

jenkins pipline 声明式 使用docker 全局变量 jenkins配置docker_docker_34

打包好后会生成一个dist文件,cp到SSH服务器目录中,在nginx中配置指定路径即可访问。