docker启动的jenkins
挂载的目录是:docker run -d –name myjenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_node:/var/jenkins_home jenkins/jenkins
所以我们需要复制maven 和 java到容器挂载的目录/var/jenkins_node
配置自动化全局设置的时候需要使用容器的目录:/var/jenkins_home/jdk /var/jenkins_home/maven
安装maven
下载个maven到/var/jenkins_node目录
安装jdk
下载个jdk到/var/jenkins_node目录
安装git
jenkins自带了git所以不需要安装
安装构建后操作插件
Clang Scan-Build
安装参数化构建
Git Parameter
安装插件
maven:Unleash Maven
ssh:Publish Over SSH
配置jenkins全局设置(maven jdk git) 系统管理>全局工具配置
配置Publish Over SSH 系统管理>系统设置
- 免密登录
因为我们是docker安装的 所以需要在docker中配置
在jenkins容器中生成ssh
ssh-keygen -t rsa
ssh-copy-id -i /var/jenkins_home/.ssh/id_rsa.pub root@118.184.218.184
- 配置Publish Over SSH
构建一个新的maven项目
参数化构建选择分支
替换数据库等一些配置(构建前配置)
echo "当前目录在项目根目录"
echo "替换端口为8082"
sed -i "s#^server.port=.*#server.port=8082#g" src/main/resources/application.properties
新建sh脚本 替换stop.sh中的端口就行了
mkdir -p /opt/sh
cd /opt/sh/
vi start.sh
#!/bin/bash
export JAVA_HOME=/var/jenkins_home/jdk1.8
echo ${JAVA_HOME}
export BUILD_ID=dontkillme
echo "授权当前用户"
chmod 777 /opt/dev
echo "执行...."
cd /opt/dev
nohup java -jar *.jar > app.log 2>&1 &
sleep 10s
echo "输出项目启动日志"
cat app.log
echo "启动成功"
vi stop.sh
#!/bin/bash
echo "start stopping the application ..."
PORT=8081
pid=`netstat -anp|grep $PORT|awk '{printf $7}'|cut -d/ -f1`
echo “旧应用进程id:$pid”
if [ -n "$pid" ]
then
kill -9 $pid
fi
Exec command
图片中的执行顺序哟
cd /opt/sh/
chmod -R 777 *.sh
./stop.sh
./start.sh
如果多模块可以使用*/.war Remove prefix不用配置了
查看构建的信息
构建后的war包备份啦
- 备份的目录在宿主机
/var/jenkins_node/jobs/maven-tests/builds/36/archive/target
参考:
https://www.cnblogs.com/fakerblog/p/8482682.html
https://blog.csdn.net/MenofGod/article/details/81941223
https://blog.csdn.net/weinichendian/article/details/81274065