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:
- 点击系统管理->插件管理,进行一些自定义的插件安装:
-
确保以下插件被正确安装:
-
通过系统管理->全局工具配置来进行全局工具的配置,比如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/