栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

记录一下:Docker搭建Jenkins以及Gitee的SpringBoot多模块项目发版过程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

记录一下:Docker搭建Jenkins以及Gitee的SpringBoot多模块项目发版过程

此项目是手动发包,jenkins作为容器,但是jar包并不作为容器发布 拉取jenkins镜像
# 拉取的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推荐的插件页面,直接点安装推荐插件就好。
安装完成之后的新建用户,配置实例,自己看着配就行。

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进行构建。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/919706.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号