安装Docker随便根据其他教程安装即可,本文着重讲jenkins的安装与环境配置。
一、安装jenkins
1.运行命令搜索Jenkins
docker search jenkins
deprecated
是弃用的意思,第一条搜索记录就是告诉我们 jenkins 镜像已经弃用,让我们使用 jenkins/jenkins:lts
镜像名进行拉取。
2.拉取Jenkins镜像
docker pull jenkins/jenkins:lts
docker images #查看镜像
3.启动Jenkins
先在宿主机创建Jenkins的挂载目录
mkdir -p /home/jenkins/workspace
启动容器
docker run -uroot -d --restart=always --privileged=true -p 9001:8080 -p9002:50000 \
-v /home/jenkins/workspace/:/var/jenkins_home/workspace \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
--name jenkins jenkins/jenkins:lts
4.访问及注意事项
如果使用的是阿里云或者腾讯云等服务器,需要打开防火墙规则,开放容器映射的宿主机的端口9001,9002。打开后页面
进入容器中查询密码并输入后继续
docker exec -it -uroot jenkins bash # -uroot 是以管理员身份登入容器
cat /var/jenkins_home/secrets/initialAdminPassword
5.安装,安装推荐插件即可。
创建一个jenkins账号,如果不想创建使用默认的admin即可,如果是公网,admin账号需要修改密码。如是新创建的账号就不用。
然后进行jenkins主界面
二、环境配置
1.插件安装
本次使用的是gitee作为代码仓库,需要安装gitee插件
maven 插件:Maven Integration plugin
SSH远程连接插件:Publish Over SSH
2.环境配置
Gitee
进入jekins的系统设置,添加gitee令牌,如果不使用这个令牌模式,可以后续再新建流水线时再通过用户名和密码添加即可。
信息填写完成点击【测试连接】按钮,提示成功,说明设置gitee令牌设置正确。
Maven
进入jenkins的工具设置,选择版本,选自动安装
JDK
之前装的插件的作用就是可以选择自动安装jdk版本,新增安装Install from adoptium.net 模式并选择项目使用的jdk版本,后续会自动安装JDK。
3.构建Maven项目
配置
添加源码仓库的地址,以及配置gitee账号密码后保存
配置maven 构建命令 clean install -Dmaven.test.skip=true
配置远程SSH连接,服务器ip,用户名,密码等,用来将打包好的jar包传输到远程服务器进行部署。
信息填写完成之后,点击【Test Configuration】按钮,出现如下提示表示连接成功
4.任务配置
exec command可以先不写,可以先部署下看是否可以将容器中的jar包传输到宿主机指定目录。
如果可以进行下面脚本的编写
#!/bin/bash
#====================docker-springboot=====================
echo 'kill docker-springboot-1.0-SNAPSHOT old ps'
pid=`ps -ef | grep docker-springboot-1.0-SNAPSHOT | grep -v grep|awk '{print $2}' `
if [ ! $pid ]; then
echo 'no need to kill'
else
kill -9 $pid
fi
echo 'ps killed and start new ps after 5s'
sleep 5
echo 'starting docker-springboot-1.0-SNAPSHOT .....'
cd /home/jenkins/jar
chmod 777 docker-springboot-1.0-SNAPSHOT.jar
nohup java -Xmx512M -XX:-UseGCOverheadLimit -jar docker-springboot-1.0-SNAPSHOT.jar > /home/jenkins/jar/logs/nohup.out &
echo 'docker-springboot-1.0-SNAPSHOT started!'
创建restart.sh并编写上面的脚本,大致意思就是查询该jar包是否正在运行,如果正在运行,kill掉该进程,然后重新运行新的jar包。可以自己查看日志
注意里面的jar包名称和路径。文件夹必须存在,日志文件可以自己生成。
执行脚本时可能遇见 语法错误: 未预期的文件结尾”这个提示
百度后查到这个报错可能有两个原因:
1、确实存在语法错误,{}[]等前后个数不对等;
2、脚本格式,主要存在于在windows下编写的脚本,未能调整格式
在notepad++中将格式改为UNIX (编辑》文档格式转化》转为Unix),编码改为UTF-8 ( 编码》转为UTF-8),改好后如图
重新将该sh文件复制到centos中,重新执行
5.任务构建
点击构建即可进行部署。
最后,构建后日志
三、Jenkins+nginx 自动部署vue项目
连接地址