我刚刚用Kotlin+Gradle+Rest从https://code.quarkus.io下载了一个新项目,并试图执行./gradlew quarkusDev ,但遇到了以下错误:

2023-04-18 17:05:57,007 INFO  [org.tes.doc.DockerMachineClientProviderStrategy] (build-44) docker-machine executable was not found on PATH ***(masked on purpose) ***
2023-04-18 17:05:57,024 ERROR [org.tes.doc.DockerClientProviderStrategy] (build-44) Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
        UnixSocketClientProviderStrategy: failed with exception InvalidConfigurationException (Could not find unix domain socket). Root cause NoSuchFileException (/var/run/docker.sock)As no valid configuration was found, execution cannot continue.
See https://www.testcontainers.org/on_failure.html for more details.
     2023-04-18 17:05:57,282 INFO  [org.tes.uti.ImageNameSubstitutor] (build-44) Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
<====2023-04-18 17:05:57,288 INFO  [io.qua.dep.dev.IsolatedDevModeMain] (main) Attempting to start live reload endpoint to recover from previous Quarkus startup failure
<====2023-04-18 17:05:57,613 ERROR [io.qua.dep.dev.IsolatedDevModeMain] (main) Failed to start quarkus: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.kafka.client.deployment.DevServicesKafkaProcessor#startKafkaDevService threw an exception: java.lang.RuntimeException: java.lang.IllegalStateException: Previous attempts to find a Docker environment failed. Will not retry. Please see logs and check configuration
        at io.quarkus.kafka.client.deployment.DevServicesKafkaProcessor.startKafkaDevService(DevServicesKafkaProcessor.java:105)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:578)
        at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:909)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:281)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
        at java.base/java.lang.Thread.run(Thread.java:1623)
        at org.jboss.threads.JBossThread.run(JBossThread.java:501)
Caused by: java.lang.IllegalStateException: Previous attempts to find a Docker environment failed. Will not retry. Please see logs and check configuration
        at org.testcontainers.dockerclient.DockerClientProviderStrategy.getFirstValidStrategy(DockerClientProviderStrategy.java:212)
        at org.testcontainers.DockerClientFactory.getOrInitializeStrategy(DockerClientFactory.java:150)
        at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:186)
        at org.testcontainers.DockerClientFactory$1.getDockerClient(DockerClientFactory.java:104)
        at com.github.dockerjava.api.DockerClientDelegate.listContainersCmd(DockerClientDelegate.java:188)
        at io.quarkus.devservices.common.ContainerLocator.lookup(ContainerLocator.java:32)
        at io.quarkus.devservices.common.ContainerLocator.locateContainer(ContainerLocator.java:45)
        at io.quarkus.kafka.client.deployment.DevServicesKafkaProcessor.startKafka(DevServicesKafkaProcessor.java:222)
        at io.quarkus.kafka.client.deployment.DevServicesKafkaProcessor.startKafkaDevService(DevServicesKafkaProcessor.java:95)
        ... 9 more

我的设置:

quarkus --version                                                                                                                                                                                                0|1 ↵  6451  17:15:31
2.16.6.Final


gradle --version                                                                                                                                                                                                    

------------------------------------------------------------
Gradle 8.1
------------------------------------------------------------

Build time:   2023-04-12 12:07:45 UTC
Revision:     40ba32cde9d6daf2b92c39376d2758909dd6b813

Kotlin:       1.8.10
Groovy:       3.0.15
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          20 (Homebrew 20)
OS:           Mac OS X 11.6.2 x86_64
-------------------------------------------------
colima version    
                                                                                                                                                                                                  
colima version 0.5.4
git commit: feef4176f56a7dea487d43689317a9d7fe9de27e

runtime: docker
arch: x86_64
client: v20.10.22
server: v20.10.20

除了构建器提供的框架之外,我没有添加任何代码,如上所述,我使用的是Colima而不是docker.

推荐答案

在您的日志(log)中,您可以看到Quarkus正在try 在/var/run/docker.sock中查找坞站插座

但使用COLIMA时,路径是不同的:

V0.3.4或更早版本->; Docker套接字位于$HOME/.colima/docker.sock

V0.4.0或更高版本->; Docker套接字位于$HOME/.colima/default/docker.sock

也可以通过使用判断状态来检索它 colima status

由于您当前使用的是COLIMA v0.5.4,我认为Quarkus应该查看路径$HOME/.colima/default/docker.sock.但为了更有信心,只需运行colima status即可获得实际的结果.

正确配置环境,以便Quarkus可以找到Docker.sock

您必须通过运行以下命令来指示它:

export DOCKER_HOST="unix://${HOME}/.colima/default/docker.sock"

或禁用DevServices

您可以禁用devServices,因此Quarkus将不再需要docker来启动: 只需将这quarkus.devservices.enabled=false加到您的application.properties

Kotlin相关问答推荐

使用数据存储首选项Kotlin Jetpack Compose

可选的.在kotlin中不使用泛型参数

我需要后台工作才能使用卡夫卡的消息吗?

Scala性状线性化等价于Kotlin

try 一次性插入多条记录时,JOOQ连接为空错误

为什么在jacksonObjectMapper上将DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES设置为false无效?

Kotlin 接口类型参数

如何使用 Kotlin KClass 属性 simpleName 生成空值

Saripaar formvalidation 在 kotlin 中第二次不起作用

Kotlin 中 lambda 表达式中的默认参数

如何在 Kotlin 中使用 volatile

Kotlin - mutableMapOf() 会保留我输入的顺序

如何在顶级函数中使用 koin 注入依赖项

Android Kotlin StringRes 数量String

如何使用kotlin中的反射查找包中的所有类

类型不匹配推断类型为单位,但应为空

安装 Kotlin-Jupyter:e: java.lang.NoClassDefFoundError: 无法初始化类 org.jetbrains.kotlin.com.intellij.pom.java.LanguageLevel

var str:String是可变的还是不可变的?

RxJava - 每秒发出一个 observable

Android Jetpack Compose - 图像无法zoom 到框的宽度和高度