本地docker开发springboot 项目且本地更新代码 docker 容器中实时更新

这是一个简单的教程,帮助您在本地使用Docker进行Spring Boot项目的开发。实际的开发流程可能因项目的复杂性和需求而有所不同

本地docker开发springboot 项目且到本地更新代码 docker 容器中实时更新

要实现本地更新代码后Docker容器中实时更新,您可以通过将本地代码目录挂载到Docker容器中,并使用Spring Boot的热部署功能来实现。这样,当您在本地修改代码时,Docker容器内的应用程序会自动重新加载最新的代码,并实时反映更改。以下是具体的步骤:

  1. 编写Dockerfile: 创建一个Dockerfile,用于构建包含Spring Boot应用程序的镜像。确保在Dockerfile中包含调试和热部署所需的依赖项,如JVM参数和DevTools插件。下面是一个示例Dockerfile:

Dockerfile

# 基于Java 11的官方Spring Boot镜像
FROM adoptopenjdk:11-jre-hotspot

# 设置工作目录
WORKDIR /app

# 复制应用程序的JAR文件到镜像中
COPY target/your-application.jar app.jar

# 设置环境变量,启用Spring Boot热部署
ENV SPRING_PROFILES_ACTIVE=dev
ENV SPRING_DEVTOOLS_REMOTE_SECRET=mysecret

# 设置启动命令
CMD ["java", "-jar", "-Dspring.devtools.remote.secret=${SPRING_DEVTOOLS_REMOTE_SECRET}", "app.jar"]

请注意,在这个Dockerfile中,我们设置了SPRING_PROFILES_ACTIVE=dev以启用开发环境,并使用SPRING_DEVTOOLS_REMOTE_SECRET指定了DevTools插件的远程秘钥。

  1. 创建docker-compose.yml: 创建一个docker-compose.yml文件,用于定义服务和容器配置。在这里,我们将代码目录挂载到Docker容器中,以实现实时更新。下面是一个示例docker-compose.yml:

yaml

version: '3'
services:
  spring-app:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:8080"
    volumes:
      - ./src:/app/src
      - ./target:/app/target

在这个docker-compose.yml中,我们将./src目录挂载到容器的/app/src目录,以便实现代码实时同步。同样,我们也将./target目录挂载到容器的/app/target目录,以保持应用程序的构建结果同步。

  1. 构建和启动容器: 使用以下命令构建和启动Docker容器:

bash

docker-compose up --build

现在,您的Spring Boot应用程序应该在Docker容器中运行,并且代码更改会实时反映在容器中。您可以在本地编辑代码,保存后,Docker容器内的应用程序将自动重新加载最新的代码。

请注意,使用热部署功能可能会有一些性能开销,因此在生产环境中,应该禁用热部署并使用预编译的JAR包部署应用程序。但在开发阶段,热部署是非常有用的,可以加快开发迭代和调试过程。

猜你喜欢

转载自blog.csdn.net/qq_40963664/article/details/131893467