从0到1,使用docker 运行jenkins自动部署springboot项目
使用的终端有
tabby terminal 看起来比较好看,但是上传文件没有那么方便,个人感觉
SecureCRTPortable.exe 用于上传文件,可以复制粘贴,方便
大纲目录
1、配置jdk8
2、配置maven
3、安装docker
4、使用阿里云镜像服务
5、拉取java镜像
6、拉取jenkins镜像
7、新建文件夹,用于挂载jenkins
8、给文件夹权限
9、运行jenkins,并挂载maven,jdk,和刚刚新建的文件夹
10、docker logs jenkins 查看密码
11、安装插件
12、配置jenkins上的 ‘全局工具配置’ 两个setttings, jdk, maven
13、‘系统配置’ 进去后最下面配置ssh server 后面会用到
14、新建任务
15、配置任务
1、安装jdk
1、进入官网下载 jdk8
https://www.oracle.com/java/technologies/downloads/#java8
需要登录,未注册的注册就行
或者使用我这个,永久有效
链接:https://pan.baidu.com/s/1R9qADc4_VWlthFmk0WkCtQ
提取码:g8jx
2、上传到liunx服务器 /usr/local目录下
3、解压到当前目录
tar -zxvf 压缩包名字
4、环境变量在第二步和maven一起配置
2、在liunx上安装maven
1、进入官网下载tar.gz的安装包,我这里下载的是apache-maven-3.8.5-bin.tar.gz
https://maven.apache.org/download.cgi
2、上传到linux服务器上 (我上传的是在 /usr/local目录下)
3、使用tar命令解压到对应目录 (我解压到 /usr/local目录下)
tar -zxvf apache-maven-3.8.5-bin.tar.gz
4、修改镜像源,并配置仓库
因为其他电脑有settings文件,我直接拷贝的,所有已经配置了国内镜像,只需要修改仓库即可
5、解压后的文件在 /usr/local目录下,并且名字是apache-maven-3.8.5
6、由于jenkins是使用docker运行的,需要挂载目录才能使用,所以仓库是直接放在 apache-maven-3.8.5 目录下,否则无法使用仓库,后面执行jenkins任务时报错,本人因为这个困惑好久,后来才想起挂载目录问题
在apache-maven-3.8.5 下 执行命令个,创建文件夹
mkdir repository
7、将另一台电脑的repository文件夹压缩为 repository.zip。上传到 apache-maven-3.8.5 目录下
8、unzip repository.zip 解压即可 在当前目录就有了 repository文件夹
9、修改settings的仓库路径
10、进入 conf文件夹
cd /usr/local/apache-maven-3.8.5/conf
vim settings.xml
按下 i ,进入insert模式
找到下面那行修改为 如下模板即可
<localRepository>/usr/local/apache-maven-3.8.5/repository</localRepository>
按下 esc 退出编辑模式,按下 : (shift + ; 键),输入wq即可
11、或者在自己电脑修改好了,在直接上传也可以
12、配置环境变量
vim /etc/profile
按下 i , 进入 insert模式
下面命令拷贝到最下面,退出编辑模式,输入wq保存
export JAVA_HOME=/usr/local/jdk8u322-b06
export JRE_HOME=/usr/local/jdk8u322-b06/jre
export MAVEN_HOME=/usr/local/apache-maven-3.8.5
export CLASSPATH=.:$JAVA_HOME/lib$:JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$MAVEN_HOME/bin:$PATH
13、刷新配置文件
source /etc/profile
14、查看是否有问题
测试jdk
java -version
出现这个即可
openjdk version "1.8.0_322"
测试maven
mvn -version
出现这个即可
Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
3、安装docker
1、卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、sudo yum install -y yum-utils
3、sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
4、 sudo yum install docker-ce docker-ce-cli containerd.io
5、安装 sudo yum install docker-ce docker-ce-cli containerd.io
6、安装时出现询问时,输入y回车即可
7、安装完成后,启动docke
sudo systemctl start docker
8、配置使用阿里云镜像服务
1、进入阿里云官网
https://cr.console.aliyun.com/cn-hangzhou/instances
2、搜索上选择 容器镜像服务
3、进入控制台
4、选择镜像加速器
5、选择对应的liunx版本,拷贝代码粘贴运行即可(里面包含配置,并且重启docker)
4、安装jenkins、拉取jdk8镜像
1、输入命令拉取镜像
docker pull jenkins/jenkins:lts
docker pull java:8
2、创建映射目录
mkdir /usr/local/jenkins/
3、给目录权限,否则无法启动容器 (注意后面有一个/,如果没有的话,发现最后启动容器后还是没有运行到)
chown -R 1000 /usr/local/jenkins/
4、运行jenkins
docker run -di --name=jenkins -v /usr/local/jenkins:/var/jenkins_home -v /usr/local/apache-maven-3.8.5:/usr/local/apache-maven-3.8.5 -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/jdk8u322-b06:/usr/local/jdk8u322-b06 -e MAVEN_HOME=/usr/local/apache-maven-3.8.5 -p 8080:8080 jenkins/jenkins:lts
挂载了maven,jdk。因为项目中使用到
5、访问 ip + 8080
6、出现提示输入密码后即可
7、由于使用docker 运行的,密码就在运行后的日志中
8、 docker logs jenkins、会输出如下信息。中间的就是密码
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
下面就是密码
cb9f953b71b143f6815155e143a5ce34
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
9、输入密码后继续
10、安装东西,等待即可
11、安装插件
1、点击系统管理,选择插件管理,选择可选插件,如下插件一个个安装即可
Maven Integration、GitLab、Ansible、SaltStack、Parameterized Trigger、Build Pipeline、Publish Over SSH
12、配置settings, 和 jdk,maven,ssh
1、点击系统管理,选择 全局工具配置
2、连个settings的配置就是他的位置
3、JDK选择不是自动安装,因为我们已经安装过了
1、输入名字,自己喜欢
2、java_home。忘了话在liunx上输入 java -vesion。拷贝就行 根目录
4、maven选择不是自动安装
1、输入名字
2、maven_home,忘了输入mvn -version,拷贝输出打印的路径即可 根目录
5、配置ssh server
1、在系统管理中
2、选择系统配置
说明:因为jenkins是docker 运行的,无法直接运行宿主的命令,所以打包后的脚本那些需要宿主机来执行
这里通过 SSH 配置来执行
3、最下面配置 SSH servers
1、输入name
2、输入Hostname 就是ip 本台liunx的ip
3、输入username,用户名
4、点击右边的高级,输入密码
5、点击测试出现 success即可
6、点击最下面的保存即可
6、配置任务,自动部署
1、新建任务
2、选择 构建一个自由风格的软件项目
3、确定
4、源码管理
1、选择git
2、拷贝项目的地址
3、用户选择添加,输入用户名和密码即可 (ID,,描述随便输入)登录gitee的用户名和密码
4、credentials选择刚刚新建的用户
5、构建触发器
1、选择gitee webhook
2、点击生成后,出现一串字符串,拷贝它和上面的地址链接
3、到gitee的对应项目上
1、选择 webhook管理
2、新建
3、粘贴字符串,和地址即可
4、保存
6、构建
1、选择‘调用顶层maven目标’
2、选择配置好的maven版本。(就是上面说到的配置的maven)
3、目标输入以下命令
clean package -Dmaven.test.skip=true
7、构建后操作
1、选择‘Send build artifacts over SSH’
2、name选择配置好的ssh
3、exec command 表示进入后执行的命令
因为我写成了脚本,所以进入指定目录后执行脚本即可
输入框输入以下命令即可
cd /usr/local/apache-maven-3.8.5/shs
./test3-2.sh
4、点击保存
5、点击立即构建
6、点击次数进入详情
7、点击控制台输出即可
8、回到liunx
1、输入命令
docker images
2、多了脚本执行的镜像
3、netstat -nplt
项目运行中了
最后脚本如下
# 源jar路径
SOURCE_PATH=/usr/local/jenkins/workspace/test3/target
# Dockerfile路径
DOCKER_FILE_PATH=/usr/local/jenkins/workspace/test3
# 容器id
CID=$(''docker ps | grep "people-healthy" | awk '{print $1}''')
echo $CID
# 运行docker容器
function run(){
echo "开始构建镜像..."
cd $DOCKER_FILE_PATH
echo "当前路径如下"
pwd
# 构建前判断是否存在镜像,存在则删除
if [ -n "$CID" ]; then
echo "存在demo容器,CID=$CID,重启docker容器 ..."
# 停止容器运行
sudo docker stop $CID
# 删除容器
sudo docker rm $CID
# 删除镜像
sudo docker rmi people-healthy
echo "删除镜像和容器成功,下面开始构建新镜像"
else
echo "不存在people-healthy容器,下面直接开始构建镜像"
fi
# 构建镜像
docker build -t people-healthy .
echo "创建容器成功"
docker images
# 杀死特定端口进程
# mypid=$(netstat -apn|grep 9001|awk '{print $7}'|cut -d/ -f1);
# echo $mypid
# kill -9 $mypid
docker run -d --restart=always --name people-healthy -p 9001:9001 people-healthy
}
#入口
run
最后结语 如果这篇文章对你有帮助,请点个赞。嘻嘻
|