我想在我的开发环境中使用docker和一个spring boot应用程序。
对于生产环境,我首先使用mvn package生成war文件,然后使用以下dockerfile构建镜像:
FROM tomcat:9.0-jre8-alpine
COPY target/backend-0.0.1-SNAPSHOT.war $CATALINA_HOME/webapps/api.war但是出于开发的目的,我希望在编辑代码时能够检查我的更改,而不必重做mvn package,然后构建映像,然后运行容器。可以使用spring boot devtools查看对代码所做的更改,以便每次我对源代码进行更改时都会重新编译我的应用程序。
但后来我想使用一个图像,仍然是tomcat,并设置一个卷。但是我不知道我要看哪些文件。是文件夹目标还是其中的某些特定文件?并且我应该将卷链接到我的映像中的哪个文件夹?我假设类似于$CATALINA_HOME/webapps。
如果有人能帮我指出正确的方向,我将不胜感激。谢谢。
发布于 2020-06-05 06:34:11
我设法用Maven Docker image做到了这一点。使用卷映射源代码,并设置工作目录,以便Maven可以找到pom.xml。在您的docker-compose.yml中:
version: '3.1'
services:
backend:
image: maven:3.6.3-jdk-8
command: mvn spring-boot:run
ports:
- 8080:8080
- 8085:8085
volumes:
- .:/usr/src/mymaven:rw
working_dir: /usr/src/mymaven确保您的pom.xml中启用了引导工具
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>如果需要,启用远程调试器:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.3.RELEASE</version>
<configuration>
<jvmArguments>
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8085
</jvmArguments>
</configuration>
</plugin>然后,您可以将代码编辑器attach到Docker容器:https://code.visualstudio.com/Docs/editor/debugging#_launch-versus-attach-configurations
https://stackoverflow.com/questions/60452265
复制相似问题