Docker for Windows:我们的开发设置从 3.0.0+ 版本开始停止工作
Docker for Windows: our development setup stopped working starting version 3.0.0+
我这周尝试将 Windows 的 Docker 更新到 3.1.0(跳过 3.0.0),但是有了这个更新,我们的开发设置停止工作了。
描述我们设置的一些关键点
- Docker 在 WSL2 上 运行ning。
- 我们有 docker-compose.yml 用于设置基础设施。
- 这包括 Oracle 数据库 19.3 和 JBoss EAP 7.3 (JDK 11)。
- JBoss 服务公开并映射了端口 8080(网络服务器)、8787(Java 远程调试)和 9990(JBoss 管理 API) =73=]-compose.yml.
- 我们使用 IntelliJ 进行开发,并在“JBoss 运行 配置”中配置了使用上述端口。 IntelliJ会通过JBoss管理API端口9990.
按需编译部署应用
问题
提到的“JBoss 运行 配置”是此设置的一部分,它在 Docker for Windows 3.0.0+ 下停止工作。似乎 IntelliJ 无法再连接到这些端口,导致“localhost:9990”上出现连接超时错误。在版本 2.5.x 和更早版本中我们没有问题,我用 3.0.0 和 3.1.0 测试都没有成功。为了验证,我卸载了 Docker 并再次安装了版本 2.5.x,它又开始工作了。因此,对于 Windows,Docker 一定发生了一些变化。
编辑:我应该提到这个问题似乎主要是 JBoss 服务。 oracle 数据库及其端口映射有效,可以从任何数据库客户端连接。 JBoss 服务的容器日志也没有报告任何问题,服务似乎可以正常启动。
问题
- 有没有人提示在哪里搜索或如何调试此问题?
- 有没有人经历过类似的事情?
- 有人知道从 Docker 开始为 Windows 3.0.0+ 引入了哪些重大更改吗?
经过多方面的尝试和错误,我终于找到了问题所在。网络和端口映射按预期工作。问题是 IntelliJ 委托的 JBoss CLI 的连接超时,默认超时值为 5 秒。
为什么升级到 Docker Desktop 3+ 后超时是个问题我不知道。但是在我看来,Docker 的新版本似乎在某处出现了如此巨大的性能下降,以至于每次都超过 5 秒的超时,所以总是出现错误。
所以我目前的解决方案是简单地为 IntelliJ 中的超时设置一个更高的值,尽管它听起来像是一种变通方法。
如何增加超时时间?
- 在 IntelliJ 中打开菜单
Help > Edit Custom Properties...
,这会打开 idea.properties
文件,您可以在其中指定 IntelliJ 启动选项
- 将 属性
idea.wildfly.client.timeout=30000
添加到此文件
- 重启 IntelliJ
我这周尝试将 Windows 的 Docker 更新到 3.1.0(跳过 3.0.0),但是有了这个更新,我们的开发设置停止工作了。
描述我们设置的一些关键点
- Docker 在 WSL2 上 运行ning。
- 我们有 docker-compose.yml 用于设置基础设施。
- 这包括 Oracle 数据库 19.3 和 JBoss EAP 7.3 (JDK 11)。
- JBoss 服务公开并映射了端口 8080(网络服务器)、8787(Java 远程调试)和 9990(JBoss 管理 API) =73=]-compose.yml.
- 我们使用 IntelliJ 进行开发,并在“JBoss 运行 配置”中配置了使用上述端口。 IntelliJ会通过JBoss管理API端口9990. 按需编译部署应用
问题
提到的“JBoss 运行 配置”是此设置的一部分,它在 Docker for Windows 3.0.0+ 下停止工作。似乎 IntelliJ 无法再连接到这些端口,导致“localhost:9990”上出现连接超时错误。在版本 2.5.x 和更早版本中我们没有问题,我用 3.0.0 和 3.1.0 测试都没有成功。为了验证,我卸载了 Docker 并再次安装了版本 2.5.x,它又开始工作了。因此,对于 Windows,Docker 一定发生了一些变化。
编辑:我应该提到这个问题似乎主要是 JBoss 服务。 oracle 数据库及其端口映射有效,可以从任何数据库客户端连接。 JBoss 服务的容器日志也没有报告任何问题,服务似乎可以正常启动。
问题
- 有没有人提示在哪里搜索或如何调试此问题?
- 有没有人经历过类似的事情?
- 有人知道从 Docker 开始为 Windows 3.0.0+ 引入了哪些重大更改吗?
经过多方面的尝试和错误,我终于找到了问题所在。网络和端口映射按预期工作。问题是 IntelliJ 委托的 JBoss CLI 的连接超时,默认超时值为 5 秒。
为什么升级到 Docker Desktop 3+ 后超时是个问题我不知道。但是在我看来,Docker 的新版本似乎在某处出现了如此巨大的性能下降,以至于每次都超过 5 秒的超时,所以总是出现错误。
所以我目前的解决方案是简单地为 IntelliJ 中的超时设置一个更高的值,尽管它听起来像是一种变通方法。
如何增加超时时间?
- 在 IntelliJ 中打开菜单
Help > Edit Custom Properties...
,这会打开idea.properties
文件,您可以在其中指定 IntelliJ 启动选项 - 将 属性
idea.wildfly.client.timeout=30000
添加到此文件 - 重启 IntelliJ