【发布时间】:2020-05-03 03:32:46
【问题描述】:
我有以下 docker-compose 文件设置以及关联的 Dockerfile。
docker-compose.yml
version: '3'
services:
vault:
springboot-app:
build:
dockerfile: ./Dockerfile
restart: always
ports:
- "8080:8080"
environment:
- "SPRING_PROFILES_ACTIVE=local"
Dockerfile
FROM maven:3.5.2-jdk-8-alpine AS MAVEN_BUILD
COPY pom.xml /build/
COPY src /build/src/
WORKDIR /build/
RUN mvn -B -U -e clean verify
FROM openjdk:8-jre-alpine
WORKDIR /
COPY --from=MAVEN_BUILD /build/target/MyApp-0.0.1-SNAPSHOT.jar /
ENTRYPOINT ["java", "-jar", "MyApp-0.0.1-SNAPSHOT.jar"]
当我运行 docker-compose up 时,我的应用程序现在运行良好。 我想知道我需要进行哪些更改才能在代码更改时重建 Spring Boot 应用程序?在我的 pom 文件中,我的 spring-boot-maven-plugin 设置如下,并且我指定了 spring-boot-devtools 依赖项
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludeDevtools>false</excludeDevtools>
</configuration>
</plugin>
非常感谢您对此的任何帮助
谢谢 达米安
【问题讨论】:
-
你使用 git 吗? GitHub/gitlab ?然后使用 CI/CD
-
您想在您的代码库中更改代码时重建图像吗?
-
我想使用 docker-compose 在本地运行我的 spring boot 应用程序,不关心重新创建图像,只想使用 docker compose 启动所有依赖项,并且还能够看到我的应用程序中的实时更改
-
我建议在 Docker 中运行所有但您的应用程序,确保所有依赖项都已发布
ports:,并设置指向所有 @ 的 Spring 配置文件987654325@ 依赖的地址。然后从您的 IDE 的角度来看,您正在运行完全正常的本地代码,但您仍然可以从 Docker 中获得一些好处,例如特定于应用程序的数据库引擎。 -
我认为一个问题,如果我理解正确的话,就是你将整个数据源复制到容器中,所以除非你在容器内开发(最后,它也会有问题因为您会丢失在容器内所做的更改)容器不知道对源代码的任何更改。您可以改为使用
volume,这样,对本地源代码的更改也会被容器“视为”。
标签: java spring spring-boot docker docker-compose