docker 运行jenkins及vue项目与springboot项目

本文详细介绍如何使用Jenkins进行SpringBoot项目的自动化构建,并在Docker容器中运行。包括配置Maven项目、Git源码管理、执行Maven命令、构建Docker镜像以及运行容器的全过程。
摘要由CSDN通过智能技术生成

docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)

docker 运行jenkins及vue项目与springboot项目:

1.立即构建

输入任务名称:springboot
选择maven项目(先要在插件管理中安装maven插件)

2.配置
源码管理

选择git(先要在插件管理中安装git插件)
输入git地址、秘钥及需要打包的分支

Pre Steps

Build:
pom.xml
输入maven命令clean package
Post Steps:add post-build step->选择执行shell
输入shell命令:

#!/bin/bash
				#下面的路径都是指jenkins容器中的路径,非宿主机服务器的路径(通过该命令进入容器查看:docker exec -it {jenkins容器id} /bin/bash)
				#操作的项目路径是在(Dockerfile文件存放的路径)
				BASE_PATH=/var/jenkins_home/service
				# 源jar包的路径(jenkins利用maven打包项目的jar包的路径,其springboot则为构建时输入的任务名称)
				SOURCE_PATH=/var/jenkins_home/workspace/springboot/target
				#docker 镜像/容器名字 这里都命名为这个(自定义)
				SERVER_NAME=springboot
				#jar名字(jenkins利用maven打包项目的jar包名称)
				JAR_NAME=springboot-0.0.1-SNAPSHOT
				#容器id
				CID=$(docker ps -a | grep "$SERVER_NAME" | awk '{print $1}')
				#镜像id
				IID=$(docker images -a | grep "$SERVER_NAME" | awk '{print $3}')
				DATE=`date +%Y%m%d%H%M`
				# 最新构建代码 移动到项目环境
				function transfer(){
					echo "最新构建代码 $SOURCE_PATH/$SERVER_NAME/target/$JAR_NAME.jar 迁移至 $BASE_PATH ...."
					cp $SOURCE_PATH/$JAR_NAME.jar $BASE_PATH/
					echo "迁移完成"
				}
				# 备份
				function backup(){
					if [ -f "$BASE_PATH/$JAR_NAME.jar" ]; then
						echo "$JAR_NAME.jar 备份..."
						cp $BASE_PATH/$JAR_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar
						echo "备份 $JAR_NAME.jar 完成"
					else
						echo "$BASE_PATH/$SERVER_NAME.jar不存在,跳过备份"
					fi
				}
				# 构建docker镜像
				function build(){
					if [ -n "$IID" ]; then
					echo "停止$SERVER_NAME镜像构建的容器,CID=$CID"
					docker stop $CID
					echo "删除$SERVER_NAME镜像构建的容器,CID=$CID"
					docker rm  $CID
					echo "存在$SERVER_NAME镜像,IID=$IID,删除后重新构建"
					docker rmi $IID                    
					echo "删除完毕,开始构建镜像"
					cd $BASE_PATH
					docker build -t $SERVER_NAME .
					else
					echo "不存在$SERVER_NAME镜像,开始构建镜像"
					cd $BASE_PATH
					docker build -t $SERVER_NAME .
					fi
				}
				# 运行docker容器
				function run(){
					echo "执行backup ..."
					backup
					echo "执行transfer ..."
					transfer
					echo "执行build ..."
					build
					echo "docker run ..."
						echo "不存在$SERVER_NAME容器,docker run创建容器..."
							docker run --name $SERVER_NAME -v $BASE_PATH:$BASE_PATH -d -p 8089:8089 $SERVER_NAME
						echo "$SERVER_NAME容器创建完成"
				#入口
				run   

springboot项目的Dockerfile配置:

			#基于openjdk:8
			FROM openjdk:8
			ADD  personal_blog-0.0.1-SNAPSHOT.jar personal_blog.jar 
			# 指定当前操作目录
			WORKDIR /var/jenkins_home/service 
			ADD  personal_blog-0.0.1-SNAPSHOT.jar personal_blog.jar
			RUN bash -c 'touch /personal_blog.jar'
			ENTRYPOINT ["java","-Djava.security.egd-file:/dev/./urandom","-jar","-Xmx1024m","-Xms1024m","/personal_blog.jar"]

保存配置

3.立即构建

查看控制台,看看是否有错误,最后是否success
查看springboot应用的日志,看看是否启动成功,是否有错误:docker logs -f --tail=100 {容器id}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值