剑峰的茅草屋

剑峰的茅草屋
程序猿的掉发日常
  1. 首页
  2. Java
  3. 正文

Java docker部署 Spring boot +Vue3.0 -Jenkins

2022 年 2 月 9 日 212点热度 0条评论

一直都以 .net 为主要开发语言,但Java就业机会更多,研究下Java的开发流程。

项目用的Jdk1.8 spring boot 项目。

项目目录结构如下, Vue项目在 Java spring boot 的解决方案中。

 

发布方式采用的是 Jenkins + docker 进行发布,服务器用的是 Centos8。

 

Jenkins 安装maven 插件安装并配置。

 

1.新建Jenkis任务,选择构建一个maven项目。

2.项目中配置git源码 地址和账号。

 

3.在Post Step 中选择 Run regardless of build result 。

执行shell, 主要操作是 后端把maven编译后的jar包打包成 docker images 并生成container 运行 映射端口 和 目录。

前端 yarn 编译打包 ,然后生成 docker images 并生成container 运行 映射端口 和 目录。

shell脚本如下(按照自己容器 image 酌情修改)

#!/bin/bash
#=====================================================================================
#=================================1、定义初始化变量======================================
#=====================================================================================
echo '============查看打包环境================' 
#cd target/dist
pwd
echo $PATH
#操作/项目路径(Dockerfile存放的路径)
BASE_PATH=Wiki

#项目名称
SERVER_NAME=wikiapp

#获此项目的取容器id
CID=$(docker ps -a | grep -w "$SERVER_NAME" | awk '{print $1}')

#获取此项目的镜像id
IID=$(docker images | grep -w "$SERVER_NAME" | awk '{print $3}')





#=====================================================================================
#=========================2、移动jenkins已经构建好的jar包到Dockerfile所在目录=========================
#=====================================================================================

# 查找源jar文件名,进行重命名,最后将源文件移动到Dockerfile文件所在目录
function transfer(){
    echo "=========================>>>>>>>移动jenkins构建好的jar到Dockerfile所在目录,并重命名为wiki.jar"
    #cd ..
    
    pwd
        mv Dockerfile target/dist/Dockerfile

    cd target/dist
    pwd
    echo "=========================>>>>>>>迁移完成Success"

}



#=====================================================================================
#==================================3、构建最新镜像=======================================
#=====================================================================================

# 构建docker镜像
function build(){

    #无论镜像存在与否,都停止原容器服务,并移除原容器服务
    echo "=========================>>>>>>>停止$SERVER_NAME容器,CID=$CID"
    docker stop $CID

    echo "=========================>>>>>>>移除$SERVER_NAME容器,CID=$CID"
    docker rm $CID

    #无论如何,都去构建新的镜像
    #构建新的镜像之前,移除旧的镜像
    if [ -n "$IID" ]; then
        echo "=========================>>>>>>>存在$SERVER_NAME镜像,IID=$IID"


        echo "=========================>>>>>>>移除老的$SERVER_NAME镜像,IID=$IID"
        docker rmi $IID

        echo "=========================>>>>>>>构建新的$SERVER_NAME镜像,开始---->"
        cd $BASE_PATH
        docker build -t $SERVER_NAME .
        echo "=========================>>>>>>>构建新的$SERVER_NAME镜像,完成---->"

    else
        echo "=========================>>>>>>>不存在$SERVER_NAME镜像,构建新的镜像,开始--->"


        cd $BASE_PATH
        docker build -t $SERVER_NAME .
        echo "=========================>>>>>>>构建新的$SERVER_NAME镜像,结束--->"
    fi
}



#=====================================================================================
#==============================4、最后运行docker容器,启动服务===============================
#=====================================================================================

# 运行docker容器
# 先备份老的jar包
# 再移动新的jar包到Dockerfile文件所在目录
# 接着,构建新的镜像
# 最后运行最新容器,启动服务
function run(){
    transfer
    build
    #docker run -d --restart=always --name wiki
    pwd
     
}

#入口
run

docker run -d -p 10140:8880 --name $SERVER_NAME -v /log:/app/wiki/log $SERVER_NAME

echo '==================================前端容器=================================='

cd ..
cd ..
cd web
pwd
#ls
rm -rf ./dist/*

yarn install
yarn run build-prod

#打包后的进入文件夹
#cd /var/lib/jenkins/workspace/webapi/bin/Debug/netcoreapp3.1/publish/
cd dist

pwd
docker stop wikifront
docker rm wikifront 
docker rmi wikifront_image
#重新构建镜像和容器
docker build -t wikifront_image . 
docker run -d -p 10141:80 --name wikifront wikifront_image

 

前端脚本未做初始化处理

docker stop wikifront
docker rm wikifront
docker rmi wikifront_image

如果是第一次运行 注释即可。

 

执行脚本 按照对应端口访问即可

 

标签: 暂无
最后更新:2022 年 2 月 9 日

sunjianfeng

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2024 剑峰的茅草屋. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

沪ICP备2021017081号