【发布时间】:2021-02-09 14:32:05
【问题描述】:
我使用 docker-compose 来启动不同的 Spring Boot 应用程序。
我的 docker 镜像是用这种Dockerfile 定义的:
FROM openjdk:8-jdk-alpine
ADD app.jar app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
但是,我希望使用 mvn spring-boot:run 之类的东西从调试和热重载功能中受益,而不依赖于特定的 IDE。
在不依赖特定 IDE 的情况下,在 Docker 容器中使用 Spring Boot 完成调试和热重载的最佳方法是什么?
注意事项:
- 我的源文件被构建到一个 jar(使用 Maven)中,该 jar 被复制到包含我的 Docker 映像定义的不同位置;这意味着我的源文件不在 docker 映像中。
- 我想在 Docker 容器中开发的原因是我的应用程序相互依赖,并且是在 docker-compose 环境中配置的,所以我无法轻松地在 docker 网络和环境之外单独运行一个应用程序。
我想在docker容器中挂载一个包含我的spring boot项目的卷,然后在容器中使用mvn spring-boot:run;但我不能阻止 maven 从 Internet 下载所有依赖项(我尝试指定包含 all my dependencies 的 local repository 没有成功)。我想知道这是否是一个不错的解决方案以及如何使其发挥作用。
【问题讨论】:
标签: java spring-boot docker maven