IDEA 2021.1更新了新的功能 Run Targets,可以将应用运行在Docker、SSH和WSL远程目标上。本次主要实验下如何将本地的应用运行在wsl2中的docker容器上,并进行远程debug调试。
1. 编辑启动类的配置,选择运行在Docker上。
2. 选择Docker server,这里使用部署在WSL2中的docker服务,选择工程中的Dockerfile文件进行构建镜像。同时需要在Docker服务端的配置文件damon.json中添加如下配置,通过docker engine的API进行连接。Connection successful后完成Docker的配置。
"hosts": ["unix:///var/run/docker.sock", "0.0.0.0:4312"]
3. NEXT会进行镜像构建,继续下一步
4. 选择在镜像中的path,配置在镜像中的JDK的HOME和version,完成配置。
5. 在Docker容器的启动参数添加端口10002映射,Dockerfile添加相同的端口参数,用于远程debug。
-p 10002:10002
FROM openjdk:11-jre-slim
RUN mkdir /work -p
WORKDIR /work
ADD /build/libs/app-1.0.jar /work/app.jar
#EXPOSE 80 7002 1099
ENTRYPOINT ["java","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:10002","-Xmx700m","-Xms256m","-jar","/work/app.jar","--server.port=8080","--management.port=7002"]
6. 启动应用,看到控制台可进行添加远程debug提示,点击添加Attach debugger,连接成功即可进行远程debug。
7. 启动前(before launch)添加打包配置,这样每次构建都会部署新的jar
容器服务启动后的端口随机映射本地端口,可以再添加启动参数配置固定服务端口。
完成。待继续更多开发体验