【工具】Docker安装Jenkins并部署Java项目
1. 前置条件
准备一台云服务器或本地虚拟机,保证必须要java环境,一键安装jdk:
yum install -y java-1.8.0-openjdk.x86_64
2. 安装
1)拉取镜像:
docker pull jenkins/jenkins:lts
2)运行容器:
docker run -d -u root -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:lts
3)运行成功后,通过浏览器访问Jenkins,弹出如下画面:
在控制台中输入如下命令即可查看密码:
cat /var/jenkins_home/secrets/initialAdminPassword
选择”安装推荐的插件“:
等待安装:
然后就是傻瓜式操作,完成安装。
—
3. 创建项目
输入任务名,任意,然后点击确定:
输入仓库地址和用户名密码:
选择构建步骤:
3.1 配置Maven
直接将maven文件拖到Jenkins挂载的目录下:
注意:拉到linux服务器上的maven的配置文件setting.xml的仓库地址要改成linux的路径地址,否则会报错。
配置Jenkins的maven:
点击保存。
3.2 构建项目
进入工作台,点击构建按钮:
构建成功之后就等于打包成功了。
3.3 自动部署
在系统管理中添加如下配置:
增加构建步骤配置,如下图所示:
具体脚本如下所示:
cp /var/jenkins_home/workspace/zhj-club-subject/zhj-club-subject/zhj-club-starter/target/zhj-club-starter.jar /var/jenkins_home/jar/
#!/bin/bash
APP_NAME=zhj-club-starter.jar
LOG_NAME=zhj-club-starter.log
pid=`ps -ef | grep $APP_NAME | grep -v grep|awk '{print $2}'`
function is_exist(){
pid=`ps -ef | grep $APP_NAME | grep -v grep|awk '{print $2}'`
if [ -z ${pid} ]; then
String="notExist"
echo $String
else
String="exist"
echo $String
fi
}
str=$(is_exist)
if [ ${str} = "exist" ]; then
echo " 检测到已经启动的程序,pid 是 ${pid} "
kill -9 $pid
else
echo " 程序没有启动了 "
echo "${APP_NAME} is not running"
fi
str=$(is_exist)
if [ ${str} = "exist" ]; then
echo "${APP_NAME} 已经启动了. pid=${pid} ."
else
source /etc/profile
BUILD_ID=dontKillMe
nohup java -Xms300m -Xmx300m -jar /var/jenkins_home/jar/$APP_NAME >$LOG_NAME 2>&1 &
echo "程序已重新启动..."
fi
再次构建项目,此时Jenkins就不止会打包项目,还会启动项目。
注意:确保目录脚本文件中的目录已经创建,否则不会启动项目。
发现项目已经运行起来了: