我开发了一个Java程序,该程序应该在docker中运行。但是,调试在docker中运行的Java程序时遇到了很多麻烦。
我在Internet上搜索了一些教程,它们提出了诸如spring-dev-tools之类的工具(因为我的java程序是基于spring-boot的程序)。
https://www.youtube.com/watch?v=sz5Zv5QQ5ek
基于这些教程,可以进行调试,例如设置断点和监视变量,但是,当我更新代码(例如某些类)时,这些更改不能立即反映在docker中运行的程序中,表现为旧代码。
有人可以给些提示吗?
答案 0 :(得分:0)
通过以下操作,我设法完成了这项工作:
这是我的dockerfile:
FROM gradle:5.4-jdk12
WORKDIR /app
EXPOSE 8080 5005
这是我的docker-compose.yml:
version: '3'
services:
app:
build:
context: .
ports:
- 5005:5005
- 8080:8080
volumes:
- .:/app
command: ["gradle", "bootRun"]
当我使用docker-compose up
运行此程序,然后连接远程调试器时,热重装就起作用了。
我正在从Intellij连接,因此我必须重建项目才能使热重装工作正常。