使用 Docker Compose 部署 Spring Boot 应用

使用 Docker Compose 部署 Spring Boot 应用

第一步:创建 Spring Boot 应用的 Dockerfile

  1. 在您的 Spring Boot 项目根目录中创建一个 Dockerfile

  2. 编辑 Dockerfile,添加以下内容:

    Dockerfile 复制代码
    # 基础镜像使用 OpenJDK
    FROM openjdk:11-jdk-slim
    
    # 维护者信息
    LABEL maintainer="your-email@example.com"
    
    # 添加应用的 jar 文件
    ADD target/spring-boot-application.jar app.jar
    
    # 暴露 8080 端口
    EXPOSE 8080
    
    # 容器启动时运行 Java 应用
    ENTRYPOINT ["java", "-jar", "/app.jar"]

    这个 Dockerfile 会构建一个包含您的 Spring Boot 应用的 Docker 镜像。

  3. 确保您的 Spring Boot 应用已经通过 Maven 或 Gradle 构建,生成了 target/spring-boot-application.jar

第二步:编写 docker-compose.yml 文件

  1. 在项目的根目录中创建一个 docker-compose.yml 文件。

  2. 编辑 docker-compose.yml 文件,添加以下内容:

    yaml 复制代码
    version: '3'
    services:
      app:
        build: .
        ports:
          - "8080:8080"

    这个配置定义了一个服务 app,它将根据您的 Dockerfile 构建镜像,并将容器的 8080 端口映射到主机的 8080 端口。

第三步:部署到服务器

  1. 将包含 Dockerfiledocker-compose.yml 的项目目录上传到您的远程服务器。您可以使用 scp 命令或其他文件传输方法。
  2. 在远程服务器上,确保已安装 Docker 和 Docker Compose。

第四步:使用 Docker Compose 运行服务

  1. 在远程服务器上的项目目录中,运行以下命令启动服务:

    bash 复制代码
    docker-compose up -d

    这会导致 Docker Compose 根据您的 docker-compose.yml 文件构建镜像(如果尚未构建)并在后台启动服务。

  2. 您的 Spring Boot 应用现在应该正在运行,并且可以通过服务器的 8080 端口访问。

结论

使用 Docker Compose 部署 Spring Boot 应用的过程相对直接。它不仅简化了部署流程,还为应用的扩展和维护提供了便利。这种方法特别适用于需要在生产环境中运行的复杂应用。

相关推荐
dazhong20121 小时前
Spring Boot 项目新增 Module 完整指南
java·spring boot·后端
xrkhy1 小时前
SpringBoot之日志处理(logback和AOP记录操作日志)
java·spring boot·logback
上官浩仁3 小时前
springboot synchronized 本地锁入门与实战
java·spring boot·spring
m0_748461393 小时前
Spring Boot + Vue 项目中使用 Redis 分布式锁案例
vue.js·spring boot·redis
山东小木3 小时前
JBoltAI需求分析大师:基于SpringBoot的大模型智能需求文档生成解决方案
人工智能·spring boot·后端·需求分析·jboltai·javaai·aigs
target酱4 小时前
Docker部署全流程
前端·docker
哈喽姥爷4 小时前
Spring Boot--Bean的扫描和注册
java·spring boot·后端·bean的扫描和注册
problc4 小时前
Spring Boot `@Service` 互相调用全攻略:`@Autowired` vs `@Resource`
java·spring boot·后端
橙*^O^*安5 小时前
Kubernetes集群部署Jenkins指南
云原生·容器·kubernetes·jenkins·devops
Anthony_2315 小时前
MySQL的常用命令
运维·数据库·mysql·adb·docker