Docker环境下的安装
- 下载Jenkins的Docker镜像:
sudo docker pull jenkins/jenkins:lts
- 在Docker容器中运行Jenkins:
sudo docker run -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-d jenkins/jenkins:lts
Jenkins的配置
- 
运行成功后访问该地址登录Jenkins,第一次登录需要输入管理员密码:http://39.108.231.131:8080/ 
- 
使用管理员密码进行登录,可以使用以下命令从容器启动日志中获取管理密码: 
sudo docker logs jenkins 
- 从日志中获取管理员密码:

- 
选择安装插件方式,这里我们直接安装推荐的插件: 
- 
进入插件安装界面,联网等待插件安装: 

- 安装完成后,创建管理员账号:

- 进行实例配置,配置Jenkins的URL:

- 点击系统管理->插件管理,进行一些自定义的插件安装:

- 
确保以下插件被正确安装: 
- 
- 
根据角色管理权限的插件:Role-based Authorization Strategy 
- 
远程使用ssh的插件:SSH plugin、Publish Over SSH   
 
- 
- 
通过系统管理->全局工具配置来进行全局工具的配置,比如maven的配置:  
- 
新增maven的安装配置: 
- 
在系统管理->系统配置中添加全局ssh的配置,这样Jenkins使用ssh就可以执行远程的linux脚本了,若点击添加没有反应,可去凭据管理添加:  
打包部署SpringBoot应用
这里我们使用nacos-consumer项目代码来演示下如何使Jenkins一键打包部署SpringBoot应用。
将代码上传到Git仓库
有一点需要注意,要将pom.xml中的dockerHost地址改成你自己的Docker镜像仓库地址:

执行脚本准备
- 将nacos-consumer.sh脚本文件上传到/mydata/stuv目录下,脚本内容如下:
#!/usr/bin/env bash
app_name='nacos-consumer'
sudo docker stop ${app_name}
echo '----stop container----'
sudo docker rm ${app_name}
echo '----rm container----'
sudo docker run -p 20012:20012 --name ${app_name} \
        -v /etc/localtime:/etc/localtime \
        -v /mydata/app/${app_name}/logs:/var/logs \
        -d stuv/${app_name}:0.0.1-SNAPSHOT
echo '----start container----'
给.sh脚本添加可执行权限:
chmod 775 nacos-consumer.sh
- windows下的.sh脚本上传到linux上使用,需要修改文件格式,否则会因为有特殊格式存在而无法执行:
#使用vim编辑器来修改
sudo vim nacos-consumer.sh
# 查看文件格式,windows上传上来的默认为dos
:set ff
#修改文件格式为unix
:set ff=unix
#保存并退出
:wq
- 执行.sh脚本,测试使用,可以不执行:
./nacos-consumer.sh
在Jenkins中创建执行任务
- 首先我们需要新建一个任务:

- 设置任务名称后选择构建一个自由风格的软件项目:

- 然后在源码管理中添加我们的git仓库地址:https://github.com/xlxsui/nacos-consumer

- 
此时需要添加一个凭据,也就是我们git仓库的账号密码:  
- 
填写完成后选择该凭据,就可以正常连接git仓库了; 
- 
之后我们需要添加一个构建,选择调用顶层maven目标,该构建主要用于把我们的源码打包成Docker镜像并上传到我们的Docker镜像仓库去: 
- 
选择我们的maven版本,然后设置maven命令和指定pom文件位置:  
- 
之后添加一个执行远程shell脚本的构建,用于在我们的镜像打包完成后执行启动Docker容器的.sh脚本:  
- 
需要设置执行的shell命令如下:/mydata/stuv/nacos-consumer.sh 
- 
改maven镜像为aliyun镜像 
cd /mydata/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf
sudo vim settings.xml
- 
添加阿里云镜像  
- 
之后点击保存操作,我们的任务就创建完成了,在任务列表中我们可以点击运行来执行该任务;    调用测试,可以看到服务返回的hystix 服务降级返回:  
Jenkins国内镜像:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
基于docker的jenkins maven配置地址
/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/
 
                     
                