簡體   English   中英

java.lang.IllegalStateException:找不到有效的 Docker 環境。 請查看日志並檢查配置

[英]java.lang.IllegalStateException: Could not find a valid Docker environment. Please see logs and check configuration

我有一個名為 myImageName:latest 的 docker 圖像,我在我的應用程序中使用了它。 我想為我的應用程序編寫集成測試,因此我想使用 TestContainer package。當我運行以下簡單測試時:

@Testcontainers
public class myIntegrationTest{

    @Container
    private GenericContainer container =
    new GenericContainer<>(DockerImageName.parse("myImageName:latest"))
    .withExposedPorts(8080);

    
    @Test
    public void myIntegrationTestName() throws Exception{
        assertTrue(container.isRunning());
    }

}

我收到以下錯誤(完整堆棧跟蹤):

18:30:58.741 [main] 錯誤 org.testcontainers.dockerclient.DockerClientProviderStrategy - 找不到有效的 Docker 環境。 請檢查配置。 Attempted configurations were: 2 18:30:58.746 [main] ERROR org.testcontainers.dockerclient.DockerClientProviderStrategy - UnixSocketClientProviderStrategy: failed with exception NoClassDefFoundError (Could not initialize class org.testcontainers.shaded.com.github.dockerjava.core.DefaultObjectMapperHolder) 18:30 :58.747 [main] 錯誤 org.testcontainers.dockerclient.DockerClientProviderStrategy - 由於未找到有效配置,執行無法繼續

java.lang.IllegalStateException:找不到有效的 Docker 環境。 請查看日志並檢查配置 org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$getFirstValidStrategy$7(DockerClientProviderStrategy.java:215) at java.base/java.util.Optional.orElseThrow(Optional.java) orElseThrow(Optional.java) orElseThrow(Optional.java) dockerclient.DockerClientProviderStrategy.getFirstValidStrategy(DockerClientProviderStrategy.java:207) at org.testcontainers.DockerClientFactory.getOrInitializeStrategy(DockerClientFactory.java:136) at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:178) at org.testcontainers.LazyDockerClient.getDockerClient (LazyDockerClient.java:14) at org.testcontainers.LazyDockerClient.authConfig(LazyDockerClient.java:12) at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:310) at org.testcontainers.junit.jupiter.TestcontainersExtension$ StoreAdapter.start(TestcontainersExtension.java:242)一個 t org.testcontainers.junit.jupiter.TestcontainersExtension$StoreAdapter.access$200(TestcontainersExtension.java:229) at org.testcontainers.junit.jupiter.TestcontainersExtension.lambda$null$4(TestcontainersExtension.java:82) at org.junit.jupiter .engine.execution.ExtensionValuesStore.lambda$getOrComputeIfAbsent$4(ExtensionValuesStore.java:86) at org.junit.jupiter.engine.execution.ExtensionValuesStore$MemoizingSupplier.get(ExtensionValuesStore.java:205) at org.junit.jupiter.engine. execution.ExtensionValuesStore$StoredValue.evaluate(ExtensionValuesStore.java:182) at org.junit.jupiter.engine.execution.ExtensionValuesStore$StoredValue.access$100(ExtensionValuesStore.java:171) at org.junit.jupiter.engine.execution.ExtensionValuesStore .lambda$closeAllStoredCloseableValues$1(ExtensionValuesStore.java:65) 在 java.base/java.util.stream.ReferencePip eline$2$1.accept(ReferencePipeline.java:176) at java.base/java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3605) at java.base/java.util.stream.AbstractPipeline.copyInto( AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base /java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)在 org.junit.jupiter.engine.execution.ExtensionValuesStore.closeAllStoredCloseableValues(ExtensionValuesS tore.java:68) at org.junit.jupiter.engine.descriptor.AbstractExtensionContext.close(AbstractExtensionContext.java:74) at org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.close(JupiterEngineExecutionContext.java:53) at org .junit.jupiter.engine.descriptor.JupiterTestDescriptor.cleanUp(JupiterTestDescriptor.java:222) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.cleanUp(TestMethodTestDescriptor.java:148) at org.junit.jupiter.engine.descriptor .TestMethodTestDescriptor.cleanUp(TestMethodTestDescriptor.java:65)在org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$cleanUp$9(NodeTestTask.java:155)在org.85.platformhiarchengineer.5support88946945888.engine.5 ThrowableCollector.execute(ThrowableCollector.java:73)在 org.junit.platform.engine.support.hierarchical.NodeTestTask.cleanUp(NodeTestTask.88213246945 888:155) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:87) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at org.junit .platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) at org.junit. platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) 在 org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:28859) 在 org.junit:28859 .engine.support.hierarchical.Node.around(Node.java:137) 在 org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) 一個 t org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit .platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84)在 java.base/java.util.ArrayList.forEach(ArrayList.java:1541)在 org.8893hiplatformengineer.2985 .SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) at org.junit.platform.engine.support.hierarchical. ThrowableCollector.execute(ThrowableCollector.java:73) 在 org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.882132469458 88:129) 在 org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) 在 org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTest528486841) :127) 在 org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) 在 org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively (NodeTest12582.8:82912588) org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) at org.junit. platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)在 org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(Hierarch icalTestEngine.java:51) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org .junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform. launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) 在 org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) 在 org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) (DefaultLauncher.launcher.laucher.launcher.cutplatform.422) DefaultLauncher.java:84) 在 org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference. java:98) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452) at org.eclipse .jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)

  • docker v20.10.5
  • junit v5.7
  • 測試容器 v1.15.3
  • jdk v11.0.10

先感謝您!

我在 pom.xml 中添加了以下依賴項:

 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.10.5</version> </dependency>

此 package 缺少 class:

DefaultObjectMapperHolder

我在使用 rancher 桌面時遇到了類似的異常。 為了檢查 docker 是否正常運行,我跑了

$ docker compose ls
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

根據這些信息,我斷定 rancher 桌面 docker 環境存在問題。 在重新啟動 rancher 桌面時,錯誤消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM