Spring Boot部署到服务器

news/2025/2/13 3:40:01/

使用 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/news/1571601.html

相关文章

124 巨坑uni-app踩坑事件 uniCloud本地调试服务启动失败

1.事情是这样的 事情是这样的,我上午在运行项目的时候还是好好的,我什么都没干,没动代码,没更新,就啥也没干,代码我也还原成好好的之前的样子,就报这个错,但是我之前没用过这个服务呀…

sqli-lab靶场学习(六)——Less18-22(User-Agent、Referer、Cookie注入)

前言 前面的关卡,都是直接在输入框或者浏览器的地址栏上做文章即可。但本文这几关,需要用工具拦截请求修改请求头部才行。 Less18(User-Agent注入) 本关的注入点在User-Agent。我们在用户名和密码框中输入admin/admin后&#xf…

DeepSeek训练成本与技术揭秘

引言:在当今人工智能蓬勃发展的时代,DeepSeek 宛如一颗耀眼的新星,突然闯入大众视野,引发了全球范围内的热烈讨论。从其惊人的低成本训练模式,到高性能的模型表现,无一不让业界为之侧目。它打破了传统认知&…

快速上手——.net封装使用DeekSeek-V3 模型

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,用爱发电,去丈量人心,是否能达到人机合一?开工大吉 新的一年就这么水灵灵的开始了,在这里,祝各位读者新春快乐,万事如意! 新年伊…

datacom和网络安全的关联 网络安全与大数据

此前中央和信息化领导小组成立,以规格高、力度大、立意远来统筹指导中国迈向网络强国的发展战略。十三五规划《建议》提出,实施网络强国战略,加快构建高速、移动、安全、泛在的新一代信息基础设施。拓展网络经济空间。实施“互联网”行动计划…

LVGL4种输入设备详解(触摸、键盘、实体按键、编码器)

lvgl有触摸、键盘、实体按键、编码器四种输入设备 先来分析一下这四种输入设备有什么区别 (1)LV_INDEV_TYPE_POINTER 主要用于触摸屏 用到哪个输入设备保留哪个其他的也是,保留触摸屏输入的任务注册,其它几种种输入任务的注册&…

effective-Objective-C 第五章学习笔记

内存管理 文章目录 内存管理理解引用计数属性存取方法的内存管理自动释放池要点 以ARC简化引用计数使用ARC时必须遵循的方法命名规则变量的内存管理语义ARC清理实例变量覆写内存管理方法要点 在dealloc方法中只释放引用并解除监听要点 编写异常安全代码时留意内存管理问题要点 …

android的Lifecycle简介

嗯,我现在需要了解Android的Lifecycle组件。Lifecycle是Jetpack的一部分,对吧?听说它帮助管理Activity和Fragment的生命周期,避免内存泄漏。那它具体是怎么工作的呢? 首先,LifecycleOwner和LifecycleObser…