【问题标题】:TestContainers Could not find a valid Docker environmentTestContainers 找不到有效的 Docker 环境
【发布时间】:2021-10-23 15:07:13
【问题描述】:

在一个项目中运行相同版本的 TestContainers 1.15.3 可以正常检测 docker 等,但在另一个项目中由于某种签名问题而无法启动?

  2021-08-23 20:35:13.524  INFO [,,,] 49733 --- [ers-lifecycle-0] .t.d.DockerMachineClientProviderStrategy : docker-machine executable was not found on PATH ([/usr/local/bin, /usr/bin, /bin, /usr/sbin, /sbin, /usr/local/bin])
2021-08-23 20:35:14.104 ERROR [,,,] 49733 --- [ers-lifecycle-0] o.t.d.DockerClientProviderStrategy       : Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
2021-08-23 20:35:14.105 ERROR [,,,] 49733 --- [ers-lifecycle-0] o.t.d.DockerClientProviderStrategy       :     UnixSocketClientProviderStrategy: failed with exception RuntimeException (java.lang.UnsatisfiedLinkError: /private/var/folders/vr/3wn83fp91j58p74ymdrghq480000gq/T/jna--2036694134/jna17985952756996537821.tmp: dlopen(/private/var/folders/vr/3wn83fp91j58p74ymdrghq480000gq/T/jna--2036694134/jna17985952756996537821.tmp, 1): no suitable image found.  Did find:
  /private/var/folders/vr/3wn83fp91j58p74ymdrghq480000gq/T/jna--2036694134/jna17985952756996537821.tmp: code signature in (/private/var/folders/vr/3wn83fp91j58p74ymdrghq480000gq/T/jna--2036694134/jna17985952756996537821.tmp) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.). Root cause UnsatisfiedLinkError (/private/var/folders/vr/3wn83fp91j58p74ymdrghq480000gq/T/jna--2036694134/jna17985952756996537821.tmp: dlopen(/private/var/folders/vr/3wn83fp91j58p74ymdrghq480000gq/T/jna--2036694134/jna17985952756996537821.tmp, 1): no suitable image found.  Did find:
  /private/var/folders/vr/3wn83fp91j58p74ymdrghq480000gq/T/jna--2036694134/jna17985952756996537821.tmp: code signature in (/private/var/folders/vr/3wn83fp91j58p74ymdrghq480000gq/T/jna--2036694134/jna17985952756996537821.tmp) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.)
2021-08-23 20:35:14.105 ERROR [,,,] 49733 --- [ers-lifecycle-0] o.t.d.DockerClientProviderStrategy       : As no valid configuration was found, execution cannot continue

JDK:

brew info adoptopenjdk12
adoptopenjdk12: 12.0.2,10
https://adoptopenjdk.net/
/usr/local/Caskroom/adoptopenjdk12/12.0.2,10 (190MB)
From: https://github.com/adoptopenjdk/homebrew-openjdk/blob/HEAD/Casks/adoptopenjdk12.rb
==> Name
AdoptOpenJDK 12
==> Description
AdoptOpenJDK OpenJDK (Java) Development Kit
==> Artifacts
OpenJDK12U-jdk_x64_mac_hotspot_12.0.2_10.pkg (Pkg)

工作项目:

2021-08-23 20:18:23.586  INFO [,,] 47914 --- [ers-lifecycle-0] o.t.d.DockerClientProviderStrategy       : Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
2021-08-23 20:18:24.154  INFO [,,] 47914 --- [ers-lifecycle-0] o.t.d.DockerClientProviderStrategy       : Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
2021-08-23 20:18:24.156  INFO [,,] 47914 --- [ers-lifecycle-0] org.testcontainers.DockerClientFactory   : Docker host IP address is localhost
2021-08-23 20:18:24.198  INFO [,,] 47914 --- [ers-lifecycle-0] org.testcontainers.DockerClientFactory   : Connected to docker: 
  Server Version: 20.10.7
  API Version: 1.41
  Operating System: Docker Desktop
  Total Memory: 5945 MB

JDK:

java --version
openjdk 16.0.2 2021-07-20
OpenJDK Runtime Environment (build 16.0.2+7-67)
OpenJDK 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)

非常感谢任何指针。

Mac OS 大苏尔 Docker 桌面版 3.5.2 (3.5.2.18)

【问题讨论】:

  • 两个项目都使用同一个jdk吗?根据错误消息,它可能与此 jdk 设置问题有关:github.com/testcontainers/testcontainers-java/issues/1773
  • 感谢@yuppie-flu 的链接,您说得对,这些项目使用不同的JDK,因此很可能与该问题有关。已使用 JDK 信息更新了问题,并将尝试更新 JDK 并查看是否可以解决问题。
  • 切换到 Oracle JDK 12 已经解决了这个问题感谢@yuppie-flu 如果你想将你的评论转换为答案我会接受否则我会添加答案以防其他人偶然发现这个问题。

标签: java macos docker testcontainers


【解决方案1】:

这看起来是由 Adopt Open JDK 中的问题引起的,如下所述:

https://github.com/adoptium/temurin-build/issues/1211#issuecomment-521392147 github.com/testcontainers/testcontainers-java/issues/1773

切换到 Oracle JDK 12 已解决该问题。

【讨论】:

    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 2017-06-16
    • 2021-02-23
    • 2021-08-02
    • 2019-09-29
    • 2020-12-26
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多