使用Jenkins+docker 部署springboot项目

使用Jenkins+docker 部署springboot项目

1. jenkins 的安装

Jenkins 不要使用docker 去安装,这样会产生很多麻烦,比如要网络穿透,网络连接,如何让Jenkins在宿主机执行shell脚本等等一系列麻烦事,所以Jenkins 就简单的在宿主机上安装即可

宿主机安装Jenkins有很多方法,我比较习惯性的使用是 pm2 管理

  1. 先安装pm2 ;pm2 的安装步骤请查看另一篇博客:centos7下用命令安装node&pm2

  2. pm2 安装好后, 下载jenkins 的war包,可以去官网下载,也可以csdn 下载,下载地址

  3. 然后需要启动Jenkins 了

在这里插入图片描述
4. Jenkins-app.json 的脚本

{
"name": "jenkins-app", //项目名称
"script": "/xsfx/java/jdk1.8.0_202/bin/java -jar jenkins.war --httpPort=8092 ", //要执行的脚本
}

启动脚本

pm2 start jenkins-app.json

查看日志脚本

pm2 logs jenkins-app

查看pm2 的管控列表

pm2 list 
  1. jenkins 启动后,使用ip+ 端口进行访问,第一次启动的情况下,需要安装推荐插件,然后安装完后登录是需要查看日志找到密码路径获取密码

在这里插入图片描述
6. 登录以后,我们的项目如是maven 项目,则需要安装maven 插件,用来构建maven 的项目
在这里插入图片描述

在这里插入图片描述
7. 配置jenkins 的全局配置
在这里插入图片描述

在这里插入图片描述
准备工作就完了,现在开始实现 jenkins + gitlab + spring-boot 项目的构建

2. 发布项目
  1. 新建Item
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 添加正常
在这里插入图片描述
在这里插入图片描述
3. 添加构建脚本,这里的标注是重点,需要等项目构建完后,在执行当前脚本
在这里插入图片描述
4. 构建的脚本记录

#!/bin/bash

#操作/项目路径(Dockerfile存放的路劲)
BASE_PATH=/home/workspcase

#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=demo
# 源jar路径  
SOURCE_PATH=/root/.jenkins/workspace/$SERVER_NAME
# 版本号
VERSION=-0.0.1-SNAPSHOT
##Dockerfile存放的项目路劲
PROJECT_PATH=$BASE_PATH/$SERVER_NAME
## 当前时间
DATE=`date +%Y%m%d%H%M`
 
# 最新构建代码 移动到项目环境
function transfer(){
    echo "最新构建代码 $SOURCE_PATH/$SERVER_NAME/target/$SERVER_NAME$VERSION.jar 迁移至 $PROJECT_PATH ...." 
		 mkdir -p "$PROJECT_PATH"
         cp $SOURCE_PATH/$SERVER_NAME/target/$SERVER_NAME$VERSION.jar $PROJECT_PATH
    echo "迁移完成"
}
 
# 备份
function backup(){

	echo "$PROJECT_PATH/$SERVER_NAME$VERSION.jar    有备份,则执行备份"
	cp $PROJECT_PATH/$SERVER_NAME$VERSION.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar

	echo "$PROJECT_PATH/$SERVER_NAME$VERSION.jar    删除原有安装包,清除缓存.."
	rm -rf $PROJECT_PATH/$SERVER_NAME$VERSION.jar
}

function createDockerfile(){

	echo "先删除Dockerfile ,清除缓存.."
	rm -rf $PROJECT_PATH/Dockerfile
	echo "创建新的dockerfile 文件写入 创建 ..."

	touch $PROJECT_PATH/Dockerfile
	echo "FROM java:8
	 	   MAINTAINER eangulee 'yiqiniu'
		   VOLUME /tmp
		   ADD $SERVER_NAME$VERSION.jar $SERVER_NAME.jar
		   RUN sh -c 'touch /app.jar'
		   ENV JAVA_OPTS=\"\"
		   ENTRYPOINT [ \"sh\", \"-c\", \"java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom  -Xms512m -Xmx768m -jar  $SERVER_NAME.jar\" ]" >> $PROJECT_PATH/Dockerfile
    echo "执行dockerfile 文件写入 创建 完成"
}


# 构建docker镜像
function build(){

	echo " 停止,删除原有容器,可清除缓存"
	docker stop $SERVER_NAME
	docker rm $SERVER_NAME

	docker rmi $SERVER_NAME
	echo " 删除原有镜像,可清除缓存 ,开始构建镜像"
	cd $PROJECT_PATH
	docker build -t $SERVER_NAME .
}

function runDocker(){
	echo " 执行镜像,启动服务..."
	docker run --name $SERVER_NAME --restart=always --net=host -d  $SERVER_NAME
	echo " 执行镜像,启动服务 完成..."
}
# 运行docker容器
function run(){
	backup
	transfer
	createDockerfile
	build
    runDocker
}
 
#入口
run    

ok , 完毕!!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java 凯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值