snowdrop / java-buildpack-client

A simple buildpack (https://buildpacks.io/) platform implementation as a library for java..
Apache License 2.0
13 stars 7 forks source link

[request]: Raise a more user friendly message when docker engine is not started #56

Closed cmoulliard closed 3 weeks ago

cmoulliard commented 9 months ago

Request

Raise a more user friendly message when docker engine is not started when we build as today we got such a message [ERROR] Caused by: com.sun.jna.LastErrorException: [2] No such file or directory when we build an image

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.891 s
[INFO] Finished at: 2023-10-03T12:38:46+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.quarkus.platform:quarkus-maven-plugin:3.4.1:build (default) on project quarkus-hello: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR]     [error]: Build step io.quarkus.container.image.buildpack.deployment.BuildpackProcessor#buildFromJar threw an exception: java.lang.RuntimeException: java.io.IOException: com.sun.jna.LastErrorException: [2] No such file or directory
[ERROR]     at com.github.dockerjava.httpclient5.ApacheDockerHttpClientImpl.execute(ApacheDockerHttpClientImpl.java:195)
[ERROR]     at com.github.dockerjava.httpclient5.ApacheDockerHttpClient.execute(ApacheDockerHttpClient.java:9)
[ERROR]     at com.github.dockerjava.core.DefaultInvocationBuilder.execute(DefaultInvocationBuilder.java:228)
[ERROR]     at com.github.dockerjava.core.DefaultInvocationBuilder.get(DefaultInvocationBuilder.java:202)
[ERROR]     at com.github.dockerjava.core.DefaultInvocationBuilder.get(DefaultInvocationBuilder.java:74)
[ERROR]     at com.github.dockerjava.core.exec.ListImagesCmdExec.execute(ListImagesCmdExec.java:41)
[ERROR]     at com.github.dockerjava.core.exec.ListImagesCmdExec.execute(ListImagesCmdExec.java:16)
[ERROR]     at com.github.dockerjava.core.exec.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:21)
[ERROR]     at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:35)
[ERROR]     at dev.snowdrop.buildpack.docker.ImageUtils.pullImages(ImageUtils.java:39)
[ERROR]     at dev.snowdrop.buildpack.Buildpack.prep(Buildpack.java:220)
[ERROR]     at dev.snowdrop.buildpack.Buildpack.build(Buildpack.java:104)
[ERROR]     at dev.snowdrop.buildpack.Buildpack.<init>(Buildpack.java:98)
[ERROR]     at dev.snowdrop.buildpack.EditableBuildpack.<init>(EditableBuildpack.java:16)
[ERROR]     at dev.snowdrop.buildpack.BuildpackBuilder.build(BuildpackBuilder.java:72)
[ERROR]     at io.quarkus.container.image.buildpack.deployment.BuildpackProcessor.runBuildpackBuild(BuildpackProcessor.java:210)
[ERROR]     at io.quarkus.container.image.buildpack.deployment.BuildpackProcessor.buildFromJar(BuildpackProcessor.java:91)
[ERROR]     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
[ERROR]     at java.base/java.lang.reflect.Method.invoke(Method.java:578)
[ERROR]     at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:858)
[ERROR]     at io.quarkus.builder.BuildContext.run(BuildContext.java:282)
[ERROR]     at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
[ERROR]     at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
[ERROR]     at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
[ERROR]     at java.base/java.lang.Thread.run(Thread.java:1623)
[ERROR]     at org.jboss.threads.JBossThread.run(JBossThread.java:501)
[ERROR] Caused by: java.io.IOException: com.sun.jna.LastErrorException: [2] No such file or directory
[ERROR]     at com.github.dockerjava.transport.DomainSocket.<init>(DomainSocket.java:63)
[ERROR]     at com.github.dockerjava.transport.BsdDomainSocket.<init>(BsdDomainSocket.java:43)
[ERROR]     at com.github.dockerjava.transport.DomainSocket.get(DomainSocket.java:138)
[ERROR]     at com.github.dockerjava.transport.UnixSocket.get(UnixSocket.java:29)
[ERROR]     at com.github.dockerjava.httpclient5.ApacheDockerHttpClientImpl$2.createSocket(ApacheDockerHttpClientImpl.java:153)
[ERROR]     at org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:125)
[ERROR]     at org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:409)
[ERROR]     at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.connectEndpoint(InternalExecRuntime.java:164)
[ERROR]     at org.apache.hc.client5.http.impl.classic.InternalExecRuntime.connectEndpoint(InternalExecRuntime.java:174)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ConnectExec.execute(ConnectExec.java:135)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ProtocolExec.execute(ProtocolExec.java:172)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
[ERROR]     at org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec.execute(HttpRequestRetryExec.java:93)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ContentCompressionExec.execute(ContentCompressionExec.java:128)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
[ERROR]     at org.apache.hc.client5.http.impl.classic.RedirectExec.execute(RedirectExec.java:116)
[ERROR]     at org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
[ERROR]     at org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:178)
[ERROR]     at org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:67)
[ERROR]     at com.github.dockerjava.httpclient5.ApacheDockerHttpClientImpl.execute(ApacheDockerHttpClientImpl.java:191)
[ERROR]     ... 25 more
[ERROR] Caused by: com.sun.jna.LastErrorException: [2] No such file or directory
[ERROR]     at com.github.dockerjava.transport.BsdDomainSocket.connect(Native Method)
[ERROR]     at com.github.dockerjava.transport.BsdDomainSocket.connect(BsdDomainSocket.java:49)
[ERROR]     at com.github.dockerjava.transport.DomainSocket.open(DomainSocket.java:69)
[ERROR]     at com.github.dockerjava.transport.DomainSocket.<init>(DomainSocket.java:59)
[ERROR]     ... 50 more
[ERROR] -> [Help 1]
BarDweller commented 3 weeks ago

@cmoulliard the recent platform-12 changes added an attempt to ping the docker server via the api before the build, this should abort the build with a BuildpackException saying docker couldn't be verified.

Are you able to verify if this occurs for you now? if so, can close this one =)

cmoulliard commented 3 weeks ago

Are you able to verify if this occurs for you now? if so, can close this one =)

I did a new test and got the BuildpackException. So I'm closing this ticket as fixed

[main] DEBUG dev.snowdrop.buildpack.docker.DockerClientUtils - Using dockerhost unix:///var/run/docker.sock
[main] INFO org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec - Recoverable I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:2375
Exception in thread "main" dev.snowdrop.buildpack.BuildpackException: Unable to verify docker settings