# 拉取的jenkins是jenkinsci/blueocean版的 docker pull jenkinsci/blueocean下载Maven
SpringBoot需要用到Jdk和Maven,Jenkins镜像自带了JDK,但不带Maven,首先下载Maven压缩包
# 进入到想要存放Maven的位置,这是我存放Maven所在的目录 # cd /usr/local wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz # 解压 tar -zxvf apache-maven-3.6.3-bin.tar.gz # Maven当前所在的目录就是 /usr/local/apache-maven-3.6.3下载Jdk8
前往官网下jdk8,上传至需要的位置,最后面的deploy脚本需要用到jdk8
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
maven目录的要和之前自己解压的maven位置一致 docker run -d -u root -p 9000:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/apache-maven-3.6.3:/usr/local/maven --name jenkins jenkinsci/blueocean进入Jenkins
使用服务器的ip加端口访问jenkins。
初始密码在/var/jenkins_home/secrets/initialAdminPassword里,可以直接进去看。
输入密码后进入到Jenkins推荐的插件页面,直接点安装推荐插件就好。
安装完成之后的新建用户,配置实例,自己看着配就行。
系统管理 --》系统配置 --》Maven配置
系统管理 --》系统配置 --》全局属性 --》环境变量
PATH+EXTRA的作用是让原来PATH变量中的环境不丢失,最后点击保存。
系统管理 --》全局工具配置 --》Jdk安装
Gitee,配置git仓库要用到
Webhook,配置多模块要用到
General配置,勾选丢弃旧的配置,以及参数化构建过程,配置如下:
在参数化构建过程中添加git参数以及Extended Choice Parameter
源码配置 ,分支选择看你的需求
构建sell配置
#!/usr/bin/env bash
OLD_IFS="$IFS" #默认的IFS值为换行符
IFS=","
ServiceName=($ServiceNames) #以逗号进行分割了
IFS="$OLD_IFS" #还原默认换行符
jenkinsUrl="/var/jenkins_home/workspace/你git的项目名"
echo -e "e[36;1m --------------构建打包----------------------- e[0m"
cd $jenkinsUrl
#服务名拼接
for name in ${ServiceName[@]}
do
s="$s -pl $name"
done
#多个服务同时构建
if [ -n "$s" ];then
mvn clean package $s -am -amd
fi
#构建完打印是否成功
if [ $? -eq 0 ]; then
echo -e "e[32;1m OKe[0m 打包完成!"
else
echo -e "e[31;5m Faile[0m 打包失败!"
exit 1
fi
echo -e "e[36;1m --------------发布服务器--------------------- e[0m"
#服务发布
for name in ${ServiceName[@]}
do
echo -e "e[32;1m OKe[0m 打包完成! $name"
scp -r -P 22 $jenkinsUrl/$name/target/$name".jar" 用户@你服务器ip地址:/xxx/xxx/xxx/$name 你jar包需要放的位置,xxx替换为自己的路径
ssh 用户@你服务器ip地址 "sh /xxx/xxx/xxx/$name/deploy.sh restart" 启动脚本放的位置,xxx替换为自己的路径
done
启动脚本deploy.sh xxx路径和项目模块名需要替换你的
#!/bin/bash
BUILD_ID=dontKillMe
cd /xxx/xxx/xxx/项目模块名/
is_exist(){
pid=`ps -ef|grep java|grep 项目模块名|grep -v grep|awk '{print $2}' `
#If there is no return 1,else return 0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
start(){
is_exist
if [ $? -eq "0" ]; then
echo "is already running. pid=${pid} ."
else
rm -rf /xxx/xxx/xxx/项目模块名.out
/usr/local/jdk1.8.0_201/bin/java -Xms256m -Xmx1024m -jar -Dspring.profiles.active=dev 项目模块名.jar >>/var/log/mall/项目模块名.out 2>&1 &
sleep 10s
echo "start success..."
fi
}
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
sleep 1
echo "shutdown..."
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
####stop service####
stop
####start service####
start
;;
*)
printf 'Usage: %s {start|stop|restart}n' "$prog"
exit 1
;;
esac
服务器SSH公私钥生成
进入jenkins容器
docker exec -it jenkins /bin/bash
生成公私钥
ssh-keygen
回车3次
出现这个页面就说明生成成功了
会有生成id_rsa.pub和id_rsa文件,把
id_rsa.pub文件的内容拷贝下来
退出jenkins容器,进入/root/.ssh/authorized_keys文件,把从id_rsa.pub文件拷贝的内容追加到authorized_keys中,保存。
回到jenkins进行构建。



