当前位置: 首页 > article >正文

jenkins+docker部署springboot+vue项目

后端的Dockerfile和docker启动脚本

FROM openjdk:17

COPY . /home/ProjectSpace/cli/extranet/server

COPY simsun.ttf /usr/share/fonts/chinese/simsun.ttf

WORKDIR /home/ProjectSpace/cli/extranet/server

CMD java -Dspring.config.location=/home/ProjectSpace/cli/extranet/server/config/ -jar /home/ProjectSpace/cli/extranet/server/extranet-0.0.1-SNAPSHOT.jar
#! /bin/bash
echo '搭建关机服务平台---后端服务'

# 从Jenkinsfile所在目录进入Dockerfile所在目录
cd /home/ProjectSpace/cli/extranet/server/

# 编译 cli-extranet-server镜像
docker build --tag cli-extranet-server:latest .
# 关掉 cli-extranet-server(服务)
echo '关掉 旧cli-extranet-server'
docker stop cli-extranet-server
# 移除 cli-extranet-server(服务)
echo '移除 旧cli-extranet-server'
docker rm cli-extranet-server
# 运行镜像
echo '运行新镜像cli-extranet-server'
docker run -d --name cli-extranet-server -p 9002:9002 -v /etc/localtime:/etc/localtime:ro -v /home/ProjectSpace/cli/extranet/server/logs:/home/ProjectSpace/cli/extranet/server/logs -v /home/ProjectSpace/cli/extranet/server/lib:/home/ProjectSpace/cli/extranet/server/lib -e TZ=Asia/Shanghai cli-extranet-server:latest 


docker ps | head  # 查看正在运行的容器列表(只看前面几个)

jenkins后端流水线脚本

pipeline {
    agent any
 
    // 禁用默认的代码检出
    options {
        skipDefaultCheckout() 
    }

    stages {
        stage('拉取代码') {
            steps {
                echo '拉取代码Hello World'
                checkout scmGit(branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: '455cd43b-fd1a-4a7a-b8aa-218f35facaac', url: 'http://192.168.1.42:8090/cli/digital_police_tation_server.git']])
                script {
                    def commitMessage = sh(returnStdout: true, script: 'git log --format=%B -n 1').trim()
                    echo commitMessage
					echo "触发构建"
                }
            }
        }
         stage('代码打包') {
            steps {
                echo '代码打包并移动到指定目录'
                withEnv(["PATH+MAVEN=/home/maven/bin"]) {
					sh "chmod -R +x /home/maven/bin"
                    sh "mvn -Dmaven.test.skip=true clean package"
                    sh "mv target/*.jar /home/ProjectSpace/cli/digital/server/"
                }
            }
        }
        stage('打包镜像并部署') {
            steps {
                echo '执行 build_docker.sh 脚本'
                sh "chmod +x /home/ProjectSpace/cli/digital/server/build_docker.sh"
                sh "/home/ProjectSpace/cli/digital/server/build_docker.sh"
            }
        }
    }
}

jenkins前端流水线脚本

pipeline {
    agent any

    
    // 禁用默认的代码检出
    options {
        skipDefaultCheckout() 
    }


    stages {
        stage('拉取代码') {
            steps {
                echo '拉取代码'
                checkout scmGit(branches: [[name: '*/nei_dev']], extensions: [], userRemoteConfigs: [[credentialsId: '455cd43b-fd1a-4a7a-b8aa-218f35facaac', url: 'http://192.168.1.42:8090/cli/cooperative_web.git']])
                
                script {
                    def commitMessage = sh(returnStdout: true, script: 'git log --format=%B -n 1').trim()
                    echo commitMessage
					echo "触发构建"
                }
            }
        }
        
        stage('安装依赖') {
            steps {
                echo '安装依赖'
                dir('/home/jenkins/home_work/workspace/cooperative_web/') {
                    sh 'npm install --registry=https://registry.npmmirror.com/'
                }
            }
        }
        
        stage('构建项目') {
            steps {
                echo '构建项目'
                dir('/home/jenkins/home_work/workspace/cooperative_web/') {
					sh 'rm -rf dist/*'
                    sh 'npm run build'
                }
            }
        }
        
        stage('部署') {
            steps {
                echo '部署'
                 // 移除原来的包
                dir('/home/ProjectSpace/cli/cooperative_resource/web/') {
                    sh 'rm -rf ./*'
                }
				dir('/home/ProjectSpace/cli_nei/cooperative_resource/web/') {
                    sh 'rm -rf ./*'
                }
                // 将构建产物复制到指定目录
                dir('/home/jenkins/home_work/workspace/cooperative_web/') {
                    sh 'cp -R /home/jenkins/home_work/workspace/cooperative_web/dist /home/ProjectSpace/cli/cooperative_resource/web/'
                    sh 'cp -R /home/jenkins/home_work/workspace/cooperative_web/dist /home/ProjectSpace/cli_nei/cooperative_resource/web/'
                }
            }
        }
    }
}


http://www.kler.cn/a/443058.html

相关文章:

  • 易于上手难于精通---关于游戏性的一点思考
  • docker-compose安装canal并利用rabbitmq同步多个mysql数据
  • 解决idea中无法拖动tab标签页的问题
  • 【Docker】docker compose 安装 Redis Stack
  • 【数据库系统概论】第5章 数据库完整性【!触发器】
  • 人工智能与物联网:智慧城市的未来
  • 【自动化】Python SeleniumUtil 油猴 工具 自动安装用户脚本
  • OceanBase 数据库分布式与集中式 能力
  • 【使用LLM搭建系统】1语言模型,提问范式与 Token
  • MySQL创建及增删改查
  • VisionPro 机器视觉控件篇 之 CogBlobTool 斑点工具
  • php-fpm.conf 部分参数说明新手教程
  • 电脑蓝牙修复工具:一键解决蓝牙连接问题
  • ES6学习模板字符串、解构赋值(三)
  • web自动化测试框架playwright
  • 【自然资源】“三区三线”,旅游开发相互冲突怎么办?
  • 12月22日!蓝桥杯MWORKS新赛道「智能装备数字化建模大赛」总决赛暨颁奖典礼即将启幕
  • 利器 | AppCrawler 自动遍历测试工具实践(一)
  • 02-2.python入门语法一变量与数据类型2
  • C语言(结构体练习)
  • 游泳溺水识别数据集,对9984张原始图片进行YOLO,COCO JSON, VOC XML 格式的标注,平均识别率在91.7%以上
  • 高校成人教育学籍管理系统设计与实现
  • 流量分析总结(实战[INSHack2019]Passthru)
  • Linux驱动开发(15):Framebuffer子系统–LCD驱动实验
  • 【Qt】加载MySQL数据库驱动失败的解决方法
  • linux 安装redis