quarkus: I'm using Quarkus CLI tool to build a Jib Image but fails

Describe the bug

I’m using the Quarkus CLI tool to build a Jib Image but it fails because there is no Docker host available, but Jib requires no Docker

Expected behavior

Build a container image using Jib

Actual behavior

[ERROR] Caused by: java.io.IOException: ‘docker load’ command failed with error: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? [ERROR] [ERROR] at com.google.cloud.tools.jib.docker.CliDockerClient.load(CliDockerClient.java:209) [ERROR] at com.google.cloud.tools.jib.builder.steps.LoadDockerStep.call(LoadDockerStep.java:74) [ERROR] at com.google.cloud.tools.jib.builder.steps.StepsRunner.lambda$loadDocker$18(StepsRunner.java:626) [ERROR] at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131) [ERROR] at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74) [ERROR] at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82) [ERROR] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [ERROR] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) [ERROR] at java.base/java.lang.Thread.run(Thread.java:1589)

How to Reproduce?

Create a new project using Quarkus CLI.

Then run quarkus image build jib -Dquarkus.container-image.image=quay.io/lordofthejars/tilt:latest

[INFO] ---------------------< org.acme:code-with-quarkus >---------------------
[INFO] Building code-with-quarkus 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- quarkus-maven-plugin:2.16.6.Final:image-build (default-cli) @ code-with-quarkus ---
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Starting (local) container image build for jar using jib.
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Using docker to run the native image builder
[WARNING] [io.quarkus.container.image.jib.deployment.JibProcessor] Base image 'registry.access.redhat.com/ubi8/openjdk-17-runtime:1.14' does not use a specific image digest - build may not be reproducible
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Using base image with digest: sha256:1f6d8d9165248addbcfbbd5134bd85c7c443a55eb132fda82888c3deb2c6e5e5
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Container entrypoint set to [java, -Djava.util.logging.manager=org.jboss.logmanager.LogManager, -jar, quarkus-run.jar]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.931 s
[INFO] Finished at: 2023-04-18T10:05:55+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.quarkus.platform:quarkus-maven-plugin:2.16.6.Final:image-build (default-cli) on project code-with-quarkus: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR] 	[error]: Build step io.quarkus.container.image.jib.deployment.JibProcessor#buildFromJar threw an exception: java.lang.RuntimeException: Unable to create container image
[ERROR] 	at io.quarkus.container.image.jib.deployment.JibProcessor.containerize(JibProcessor.java:255)
[ERROR] 	at io.quarkus.container.image.jib.deployment.JibProcessor.buildFromJar(JibProcessor.java:181)
[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:909)
[ERROR] 	at io.quarkus.builder.BuildContext.run(BuildContext.java:281)
[ERROR] 	at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
[ERROR] 	at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
[ERROR] 	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
[ERROR] 	at java.base/java.lang.Thread.run(Thread.java:1589)
[ERROR] 	at org.jboss.threads.JBossThread.run(JBossThread.java:501)
[ERROR] Caused by: java.util.concurrent.ExecutionException: java.io.IOException: 'docker load' command failed with error: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[ERROR]
[ERROR] 	at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:588)
[ERROR] 	at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:567)
[ERROR] 	at com.google.common.util.concurrent.FluentFuture$TrustedFuture.get(FluentFuture.java:91)
[ERROR] 	at com.google.cloud.tools.jib.builder.steps.StepsRunner.run(StepsRunner.java:219)
[ERROR] 	at com.google.cloud.tools.jib.api.Containerizer.run(Containerizer.java:406)
[ERROR] 	at com.google.cloud.tools.jib.api.JibContainerBuilder.containerize(JibContainerBuilder.java:610)
[ERROR] 	at io.quarkus.container.image.jib.deployment.JibProcessor.containerize(JibProcessor.java:248)
[ERROR] 	... 10 more
[ERROR] Caused by: java.io.IOException: 'docker load' command failed with error: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[ERROR]
[ERROR] 	at com.google.cloud.tools.jib.docker.CliDockerClient.load(CliDockerClient.java:209)
[ERROR] 	at com.google.cloud.tools.jib.builder.steps.LoadDockerStep.call(LoadDockerStep.java:74)
[ERROR] 	at com.google.cloud.tools.jib.builder.steps.StepsRunner.lambda$loadDocker$18(StepsRunner.java:626)
[ERROR] 	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
[ERROR] 	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
[ERROR] 	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
[ERROR] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[ERROR] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[ERROR] 	at java.base/java.lang.Thread.run(Thread.java:1589)
[ERROR] Caused by: java.io.IOException: Broken pipe
[ERROR] 	at java.base/java.io.FileOutputStream.writeBytes(Native Method)
[ERROR] 	at java.base/java.io.FileOutputStream.write(FileOutputStream.java:372)
[ERROR] 	at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:125)
[ERROR] 	at java.base/java.io.BufferedOutputStream.implWrite(BufferedOutputStream.java:221)
[ERROR] 	at java.base/java.io.BufferedOutputStream.write(BufferedOutputStream.java:205)
[ERROR] 	at com.google.cloud.tools.jib.http.NotifyingOutputStream.write(NotifyingOutputStream.java:61)
[ERROR] 	at org.apache.commons.compress.utils.CountingOutputStream.write(CountingOutputStream.java:48)
[ERROR] 	at org.apache.commons.compress.utils.FixedLengthBlockOutputStream$BufferAtATimeOutputChannel.write(FixedLengthBlockOutputStream.java:244)
[ERROR] 	at org.apache.commons.compress.utils.FixedLengthBlockOutputStream.writeBlock(FixedLengthBlockOutputStream.java:92)
[ERROR] 	at org.apache.commons.compress.utils.FixedLengthBlockOutputStream.maybeFlush(FixedLengthBlockOutputStream.java:86)
[ERROR] 	at org.apache.commons.compress.utils.FixedLengthBlockOutputStream.write(FixedLengthBlockOutputStream.java:122)
[ERROR] 	at org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.write(TarArchiveOutputStream.java:468)
[ERROR] 	at java.base/java.security.DigestOutputStream.write(DigestOutputStream.java:146)
[ERROR] 	at com.google.cloud.tools.jib.hash.CountingDigestOutputStream.write(CountingDigestOutputStream.java:80)
[ERROR] 	at com.google.common.io.ByteStreams.copy(ByteStreams.java:118)
[ERROR] 	at com.google.cloud.tools.jib.hash.Digests.lambda$computeDigest$2(Digests.java:87)
[ERROR] 	at com.google.cloud.tools.jib.hash.Digests.computeDigest(Digests.java:104)
[ERROR] 	at com.google.cloud.tools.jib.hash.Digests.computeDigest(Digests.java:88)
[ERROR] 	at com.google.cloud.tools.jib.blob.FileBlob.writeTo(FileBlob.java:39)
[ERROR] 	at com.google.cloud.tools.jib.tar.TarStreamBuilder.writeAsTarArchiveTo(TarStreamBuilder.java:53)
[ERROR] 	at com.google.cloud.tools.jib.image.ImageTarball.dockerWriteTo(ImageTarball.java:166)
[ERROR] 	at com.google.cloud.tools.jib.image.ImageTarball.writeTo(ImageTarball.java:84)
[ERROR] 	at com.google.cloud.tools.jib.docker.CliDockerClient.load(CliDockerClient.java:195)
[ERROR] 	... 8 more
[ERROR] 	Suppressed: java.io.IOException: This archive contains unclosed entries.
[ERROR] 		at org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish(TarArchiveOutputStream.java:297)
[ERROR] 		at org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close(TarArchiveOutputStream.java:315)
[ERROR] 		at com.google.cloud.tools.jib.tar.TarStreamBuilder.writeAsTarArchiveTo(TarStreamBuilder.java:56)
[ERROR] 		... 11 more
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
❯ code .
❯ quarkus image build jib -Dquarkus.container-image.image=quay.io/lordofthejars/tilt:latest
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------------< org.acme:code-with-quarkus >---------------------
[INFO] Building code-with-quarkus 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-compiler-plugin:3.10.1:compile (default-cli) @ code-with-quarkus ---
[INFO] Nothing to compile - all classes are up to date
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.355 s
[INFO] Finished at: 2023-04-18T10:08:49+02:00
[INFO] ------------------------------------------------------------------------
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------------< org.acme:code-with-quarkus >---------------------
[INFO] Building code-with-quarkus 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- quarkus-maven-plugin:2.16.6.Final:image-build (default-cli) @ code-with-quarkus ---
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Starting (local) container image build for jar using jib.
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Using docker to run the native image builder
[WARNING] [io.quarkus.container.image.jib.deployment.JibProcessor] Base image 'registry.access.redhat.com/ubi8/openjdk-17-runtime:1.14' does not use a specific image digest - build may not be reproducible
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Using base image with digest: sha256:1f6d8d9165248addbcfbbd5134bd85c7c443a55eb132fda82888c3deb2c6e5e5
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Container entrypoint set to [java, -Djava.util.logging.manager=org.jboss.logmanager.LogManager, -jar, quarkus-run.jar]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  6.474 s
[INFO] Finished at: 2023-04-18T10:08:57+02:00
[INFO] ------------------------------------------------------------------------

Output of uname -a or ver

MacOS

Output of java -version

openjdk version “19.0.1” 2022-10-18

GraalVM version (if different from Java)

No response

Quarkus version or git rev

2.16.6

Build tool (ie. output of mvnw --version or gradlew --version)

quarkus

Additional information

No response

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 1
  • Comments: 18 (17 by maintainers)

Most upvoted comments

the CLI does support -Dxx options? at least, it does for build and dev. Maybe it was missed for the image subcommands?

Yeah, this seems to be the case. It’s not obvious why. Looking into it.

Afaics we are all saying the same thing. -Dxxx should be available to tweak.

👍🏼