Jenkins + Docker + Maven + Windows 一键部署 Spring Boot 程序到远程 Linux 服务器

Jenkins + Docker + Maven + Windows 一键部署 Spring Boot 程序到远程 Linux 服务器

文章目录

  • Jenkins + Docker + Maven + Windows 一键部署 Spring Boot 程序到远程 Linux 服务器
  • 一、准备
    • 1、环境
    • 2、基本流程
      • 准备步骤
      • 基本思路
    • 3、相关命令
    • 4、Dockerfile 文件
    • 5、配置远程服务器、安装和使用 Publish Over SSH 插件
  • 二、Jenkins 项目
    • 1、创建 `Freestyle project` 项目
    • 2、构建步骤
      • 第一步:打包
      • 第二步:复制文件
      • 第三步:发送文件,并重启容器

一、准备

1、环境

  • 本地:Windows 10 ;
  • 本地:Jenkins + Publish Over SSH 插件;
  • 本地:Maven ;
  • 远程:Linux ;
  • 远程:Docker ;

2、基本流程

准备步骤

  • 使用 Dockerfile 构建镜像;

基本思路

  • 第一步:使用 mvn clean package -DskipTests 打包 Spring Boot 程序为 jar 包;

  • 第二步:使用 Windows 命令将 jar 包复制到 jenkins 项目工作目录;

  • 第三步:使用 Publish Over SSH 插件将 jar 包发送到远程 Linux 的 /home/zibo/docker/video/app 目录;

  • 第四步:使用 Publish Over SSH 插件执行 docker restart video-app 重启 video-app 容器;

    需要构建镜像,如果是第一次启动容器,需要先启动容器,参考下面相关命令。

3、相关命令

### 镜像方式启动
# 构建镜像
docker build -t video-app-image .
# 删除镜像
docker rmi video-app-image# 启动容器
docker run -itd -p 8081:8080 -v /home/zibo/docker/video/app:/app --name video-app video-app-image# 重启容器
docker restart video-app# 删除容器
docker rm video-app# 查看实时日志
docker logs -f video-app# 进入容器内部
docker exec -it video-app /bin/bash# 离开容器
exit

4、Dockerfile 文件

# 该镜像需要依赖的基础镜像
FROM openjdk:17-jdk# 创建挂载点
VOLUME /app# 定义工作目录为/app,命令在此目录下执行
WORKDIR /app# 指定docker容器启动时运行jar包,并将端口设置为8080
ENTRYPOINT ["java", "-jar", "-Dserver.port=8080", "app.jar"]# 指定端口 8080
EXPOSE 8080# 指定维护者的名字为zibo
LABEL maintainer="zibo"

5、配置远程服务器、安装和使用 Publish Over SSH 插件

见上一篇文章

Jenkins 发送文件到远程服务器:Publish Over SSH 插件

https://blog.csdn.net/qq_29689343/article/details/131349578

二、Jenkins 项目

1、创建 Freestyle project 项目

image-20230701142546422

2、构建步骤

第一步:打包

D:
cd D:\MyFile\GitHub\perfect-video
mvn clean package -DskipTests

图示

image-20230701142715281

第二步:复制文件

xcopy /y D:\MyFile\GitHub\perfect-video\target\app.jar C:\ProgramData\Jenkins\.jenkins\workspace\perfect-video

图示

image-20230701142757398

第三步:发送文件,并重启容器

image-20230701143002448

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/2842.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习复习5

机器学习复习 1 - 下面是你在课程中看到的代码,在哪种情况下你会使用二值交叉熵损失函数? model.compile(lossBinaryCrossentropy()) A. 回归任务(预测一个数字的任务) B. BinaryCrossentropy()不应该被用于任何任务 C. 有3个或更多类(类别)的分类任务 D…

MUR20100DC-ASEMI快恢复二极管MUR20100DC

编辑-Z MUR20100DC在TO-263封装里采用的2个芯片,其尺寸都是102MIL,是一款共阴极快恢复对管。MUR20100DC的浪涌电流Ifsm为200A,漏电流(Ir)为10uA,其工作时耐温度范围为-55~150摄氏度。MUR20100DC采用抗冲击硅芯片材质,…

搞懂反射我建议选这篇

反射 介绍Class类创建对象测试代码运行结果 属性测试代码运行结果 构造方法测试代码运行结果 成员方法测试代码运行结果 用到的全部代码student类运行的全部代码 介绍 Reflection(反射) 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查。被…

win 安装 C++运行环境 - MinGW

目录 一、下载二、安装四、检查是否安装成功五、参考文章 一、下载 官网地址:https://www.mingw-w64.org/downloads/ 1.1点击【MingW-W64-builds】 1.2点击【Github】 1.3下载 如果下载太慢,可以使用GitHub Proxy 代理加速 (ghproxy.com) 二、安装 …

华为新版模拟器-ENSP_PRO发布啦

但是下载的话要去申请权限 安装的话 可以在Vbox里面先把这个包添加进去 然后点击控制-新建 这里要选中刚刚添加的虚拟硬盘, 然后点击创建 到这里虚拟机就创建好了 然后点击设置网卡 然后右键点击启动这个虚拟机就行了 此时再打开这个网址 然后点击创建沙箱-数通模拟…

centos7 配置jenkins run docker

本机环境已有jdk11 一、安装配置maven环境 1、下载maven wget https://dlcdn.apache.org/maven/maven-3/3.9.3/binaries/apache-maven-3.9.3-bin.tar.gz 2、解压 tar -zxvf apache-maven-3.9.3-bin.tar.gz 3、移动位置 mv apache-maven-3.9.3 /usr/local/ 4、加入环境变…

vue属性中的数据绑定v-text与响应式操作v-html+vue中鼠标悬停显示效果+布尔值在vue中引用属性中的操作

1&#xff0c;vue属性中的数据绑定v-text与响应式操作v-html 当我们导入vue框架后&#xff0c;对于数据的绑定功能&#xff0c;我们使用v-text的语法功能&#xff1a; <div v-text "message"><div>在该情况下&#xff0c;我们可以输出对应属性的文本&a…

重新理解 RocketMQ Commit Log 存储协议

最近突然感觉&#xff1a;很多软件、硬件在设计上是有 root reason 的&#xff0c;不是 by desgin 如此&#xff0c;而是解决了那时、那个场景的那个需求。一旦了解后&#xff0c;就会感觉在和设计者对话&#xff0c;了解他们的思路&#xff0c;学习他们的方法&#xff0c;思维…

maven-mvnd(新版maven)

引言&#xff1a; Maven和Gradle几乎包含了所有Java项目的构建。 而目前绝大部分的Java项目都是使用Maven的方式&#xff0c;Maven对比Gradle的劣势很明显&#xff0c;就是太慢了&#xff01; 一、maven-mvnd是什么&#xff1f; maven-mvnd是Apache Maven团队开发的maven的…

分布式软件架构——分布式事务TCC和SAGA

TCC事务 TCC 是另一种常见的分布式事务机制&#xff0c;它是“Try-Confirm-Cancel”三个单词的缩写&#xff0c;是由数据库专家 Pat Helland 在 2007 年撰写的论文《Life beyond Distributed Transactions: An Apostate’s Opinion》中提出。 前面介绍的可靠消息队列虽然能保…

MongoDB简介

目录 1、NoSQL概述 2、什么是MongoDB 3、MongoDB特点 一、MongoDB安装&#xff08;docker方式&#xff09; 二、MongoDB安装&#xff08;普通方式&#xff09; 三、MongoDB 概念解析 1、NoSQL概述 NoSQL(NoSQL Not Only SQL)&#xff0c;意即反SQL运动&#xff0c;指的是…

走进人工智能|强化学习 AI发展的未来引擎

前言&#xff1a; 强化学习是一种通过智能体与环境交互&#xff0c;通过尝试最大化累计奖励来学习最优行为策略的机器学习方法。 文章目录 序言背景AI发展的未来引擎技术支持应用领域总结 本篇带你走进强化学习&#xff01;一起来学习了解吧&#xff01;&#xff01;&#xff0…