Spring Boot部署到服务器

ops/2025/2/13 10:27:36/

使用 Spring Boot 部署到不同的服务器是一个常见的任务。Spring Boot 可以通过多种方式进行部署。下面给出一些常见的部署方法

1. 打包为可执行 JAR 包并部署

Spring Boot 支持将应用程序打包为一个独立的 JAR 文件,这样可以在不同的服务器上运行。

步骤:
  1. 打包应用
    在 Spring Boot 项目中,使用 Maven 或 Gradle 进行构建。

    对于 Maven,可以使用以下命令:

    mvn clean package
    
  2. 将 JAR 文件复制到服务器
    将生成的 JAR 文件(通常在 target 目录下)复制到目标服务器上。

  3. 运行 JAR 文件
    服务器上运行 JAR 文件:

    java -jar my-spring-boot-app.jar
    
  4. 后台运行
    为了确保应用在后台运行,可以使用 nohupscreen 工具:

    nohup java -jar my-spring-boot-app.jar &
    

2. 使用 Docker 部署

如果你希望跨不同的服务器运行应用,可以将 Spring Boot 应用容器化,使用 Docker 部署。

步骤:
  1. 编写 Dockerfile
    在项目的根目录下创建一个 Dockerfile 文件:

    FROM openjdk:8
    COPY target/my-spring-boot-app.jar /app.jar
    # 暴露8080端口
    EXPOSE 8080
    ENTRYPOINT ["java", "-jar", "/app.jar"]
    
  2. 构建 Docker 镜像
    使用以下命令构建 Docker 镜像:

    docker build -t my-spring-boot-app .
    
  3. 将镜像推送到 Docker Hub (这个步骤可以省略 直接本地启动容器)
    如果需要在不同的服务器上运行,首先将镜像推送到 Docker Hub(或者私有 Docker Registry):

    docker push my-spring-boot-app
    
  4. 在目标服务器上运行 Docker 容器
    在目标服务器上拉取并运行 Docker 镜像:

    docker pull my-spring-boot-app  # 如果本地 这里可以省略
    docker run -d -p 8080:8080 my-spring-boot-app
    

http://www.ppmy.cn/ops/158019.html

相关文章

问题:通过策略模式+工厂模式+模板方法模式实现ifelse优化

项目场景: 提示:这里简述项目相关背景: 示例:商城系统有会员系统,不同会员有不同优惠程度,普通会员不优惠;黄金会员打8折;白金会员优惠50元,再打7折; 问题描…

计算机网络-MPLS基础概念

早期传统IP报文依赖路由器查询路由表转发,但由于硬件技术存在限制导致转发性能低,路由器的查表转发成为了网络数据转发的瓶颈。因此旨在提高路由器转发速度的MPLS(Multi-Protocol Label Switching,多协议标签交换) 被提…

笔记3——字符串和编码

文章目录 字符串和编码编码解码字符串长度格式化字符串(1)用 % 实现(2)用 format() 实现(3)用 f-string实现 eg 字符串和编码 在 Python 中,字符串是 Unicode 字符序列。Python 3 中的字符串默…

MySQL8.0 innodb Cluster 高可用集群部署(MySQL、MySQL Shell、MySQL Router安装)

简介 MySQL InnoDB集群(Cluster)提供了一个集成的,本地的,HA解决方案。Mysq Innodb Cluster是利用组复制的 pxos 协议,保障数据一致性,组复制支持单主模式和多主模式。 InnoDB Cluster组件: …

基于Java的分布式系统架构设计与实现

Java在大数据处理中的应用:基于Java的分布式系统架构设计与实现 随着大数据时代的到来,数据处理的规模和复杂性不断增加。为了高效处理海量数据,分布式系统成为了必不可少的架构之一。而Java,凭借其平台独立性、丰富的生态系统以…

Vue3(2)

一.Vue新特性 &#xff08;1&#xff09;defineOptions:主要是用来定义Options API的选项 背景说明&#xff1a;有< script setup >之前&#xff0c;如果定义props&#xff0c;emits可以轻而易举地添加一个与setup平级 的属性。但是用了< script setup >后&#…

DeepSeek解决服务器繁忙,使用API接口进行使用

一、在网页端客户端使用DeepSeekR1&#xff0c;经常是问一个问题&#xff0c;然后就是服务器繁忙 二、具体为什么会出现这样的情况那&#xff1f; 用户流量过大&#xff1a;DeepSeek的免费开放和强大功能吸引了大量用户&#xff0c;短时间内的请求激增使服务器负担过重。 算力…

H5 图片系列—new Image()加载图片是否会有缓存,从而img标签获取同一数据源显示时使用该缓存数据?

是的,new Image() 在加载图片时,会利用浏览器的缓存机制。如果图片的 src 地址相同,浏览器会尝试从缓存中加载图片,而不是重新从网络请求。这是浏览器默认的行为,不会重复下载相同的图片,从而提高页面加载速度。 1.缓存机制 1.浏览器缓存: a.当 img.src = imageUrl 被…