我有下面的docker-复合文件设置以及一个相关的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时,我的应用程序现在运行良好。我想知道我需要做什么更改才能在代码更改的基础上重新构建spring引导应用程序?在我的pom文件中,我有如下所示的spring maven-plugin设置,并且我指定了spring devtools依赖项
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludeDevtools>false</excludeDevtools>
</configuration>
</plugin>在这方面任何帮助都是非常感谢的。
谢谢达米恩
发布于 2020-01-28 16:03:50
也许不是答案,但是
您是否有任何特定的用例在DockerFile中使用2个码头映像。?如果,您可以将构建步骤从dockerfile移出,然后从脚本构建( invoke build)和调用docker -组合来将构建复制到docker容器并启动容器。当复制时,您可能会遇到问题,对接者会使用对接文件夹而不是项目文件夹。
发布于 2020-06-04 22:27:27
对于生产应用程序,您可以使用Java映像以及已编译的.jar文件。
对于本地开发,使用Maven码头图像代替。当您对应用程序进行更改时,它可以运行源代码并进行编译。您可以使用docker-compose.yml文件,例如:
version: '3.1'
services:
backend:
image: maven:3.6.3-jdk-8
command: mvn spring-boot:run
ports:
- 8080:8080
volumes:
- .:/usr/src/mymaven:rw
working_dir: /usr/src/mymaven一定要设置卷,以便将源代码映射到Docker容器,并设置Maven查找pom.xml的工作目录。
https://stackoverflow.com/questions/59767129
复制相似问题