操作系统: Ubuntu 18 / Windows 10
Java版本: OpenJdk 12
Docker容器: Sprint Boot应用程序
要在Eclipse中连接远程调试,您可以按照以下步骤进行:
- 将以下行放入应用程序的Dockerfile中
# 对于Windows机器,请注释掉EXPOSE 7074并将其添加到docker-compose.yml中
EXPOSE 7074
ENV DEBUG_INFO="-Xdebug -Xrunjdwp:transport=dt_socket,address=0.0.0.0:7074,server=y,suspend=n"
ENTRYPOINT [ "sh", "-c", "java ${DEBUG_INFO} -Dspring.profiles.active=docker -jar /pharmacy-service.jar" ]
对于Windows,请在docker-compose.yml中添加端口
bank-service:
image: ....
environment:
...
ports:
- 9097:9097
- 7074:7074
- 仅适用于Linux,请启动您的Docker应用程序并搜索网络,在我的情况下为ecs-core_default
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
e63bb0decc92 bridge bridge local
94aefcdbb5f3 ecs-core_default bridge local
- 仅适用于Linux,请使用以下命令检查应用程序的IP地址:
$ docker network inspect ecs-core_default
[
{
"Name": "ecs-core_default",
.....
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
.....
"Containers": {
"29bebdc31d6bf2057ed31074407c780cc718396ca49f58e766e098fceaa41a41": {
"Name": "ecs-core_pharmacy-service_1",
"EndpointID": "fadc9b40bfed1d4b2104b96fb6930bda47928256092c268aa4cb67407c2c1661",
"MacAddress": "02:42:ac:12:00:06",
"IPv4Address": "172.18.0.6/16",
"IPv6Address": ""
}
}
.....
}
]
仅适用于Linux,从容器中复制IP地址:“IPv4Address”:“172.18.0.6/16”,即 172.18.0.6
仅适用于Windows 10,找到IP地址的方法是:控制面板 -> 网络和Internet -> 查看网络状态和任务 -> 更改适配器设置 -> 找到vEthernet。打开属性,转到网络选项卡,选择TCP / IPv4,然后单击属性按钮并复制IP。
![Windows Docker IPv4](https://istack.dev59.com/HfJG2.webp)
在Eclipse中,运行 -> 调试配置,使用IP地址(截图显示Linux的IPv4,对于Windows将为172.26.48.1)和公开端口(即7074)。
![enter image description here](https://istack.dev59.com/yDsqS.webp)
享受吧!