Docker for Windows:我们的开发设置从3.0.0+版本开始停止工作



本周我尝试将Docker for Windows升级到3.1.0(跳过3.0.0),但是随着这个更新,我们的开发设置停止工作。

描述我们设置的一些关键点

  • Docker在WSL2上运行
  • 我们有一个docker-compose。
  • 包括Oracle 19.3和JBoss EAP 7.3 (JDK 11)。
  • JBoss服务有端口8080 (webserver), 8787 (Java远程调试)和9990 (JBoss管理API)公开和映射在docker- composer .yml。
  • 我们使用IntelliJ进行开发,并使用JBoss运行配置;配置使用上述端口。IntelliJ将在端口9990上通过JBoss管理API按需编译和部署应用程序。

问题

前面提到的"JBoss运行配置"是这个设置的一部分,在Windows 3.0.0+的Docker下停止工作。似乎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+中引入了哪些突破性的变化吗?

在多方面尝试和错误之后,我终于找到了问题所在。网络和端口映射工作正常。问题是JBoss CLI的连接超时,它是IntelliJ委托的,它的默认超时值是5秒。

为什么这个超时是升级到Docker Desktop 3+后的问题,我不知道。但是在我看来,新版Docker在某些地方有如此巨大的性能下降,以至于每次都超过了5秒的超时时间,所以错误总是出现。

所以我目前的解决方案,即使它闻起来像一个解决方案,是简单地为IntelliJ中的超时设置一个更高的值。

如何增加这个超时?

  • 在IntelliJ中打开菜单Help > Edit Custom Properties...,打开idea.properties文件,其中可以指定IntelliJ启动选项
  • 添加属性idea.wildfly.client.timeout=30000到这个文件
  • 重启IntelliJ

相关内容

最新更新