I’m trying to test the container-based features of Quarkus and getting troubles. One of them is described here
so what do I have (not sure if it matters, but all my actions are on the macos, M3)?
- Extremely simple quarkus app – HelloWorld, literally.
- I have the set of properties, which, in my understanding, should give me possibility to build container and push them to Container registry
quarkus.container-image.build=true
quarkus.container-image.push=true
quarkus.container.image.builder=jib
quarkus.container-image.name=quarkus-container-test-app
quarkus.container-image.registry=ghcr.io
quarkus.container-image.group=<my github account>
quarkus.container-image.username=<my github account>
quarkus.container-image.password=<my github token with all permissions>
I don’t know if it matters but my pom looks like this:
<dependencies>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-kubernetes</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-container-image-jib</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-arc</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
After I’m trying to make the build and getting this:
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Starting (local) container image build for jar using jib.
[WARNING] [io.quarkus.container.image.jib.deployment.JibProcessor] Base image 'registry.access.redhat.com/ubi8/openjdk-21-runtime:1.18' 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:1f152b70f833d4a0028f3da0a1b8122cdceb49728f41ec93660371aa73de2344
[INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Container entrypoint set to [/opt/jboss/container/java/run/run-java.sh]
ERROR] Failed to execute goal io.quarkus.platform:quarkus-maven-plugin:3.11.1:build (default) on project kubernetes-quickstart: 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:273)
[ERROR] at io.quarkus.container.image.jib.deployment.JibProcessor.buildFromJar(JibProcessor.java:200)
[ERROR] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
[ERROR] at java.base/java.lang.reflect.Method.invoke(Method.java:580)
[ERROR] at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:849)
[ERROR] at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
[ERROR] at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
[ERROR] at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2516)
[ERROR] at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2495)
[ERROR] at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1521)
[ERROR] at java.base/java.lang.Thread.run(Thread.java:1570)
[ERROR] at org.jboss.threads.JBossThread.run(JBossThread.java:483)
[ERROR] Caused by: com.google.cloud.tools.jib.registry.RegistryErrorException: Tried to push BLOB for ghcr.io/<my github account>/quarkus-container-test-app with digest sha256:5b0c897254676b61b0c37140317cef5338584e42eddf10fd3c56e3681ae51511 but failed because: other: blob upload invalid
[ERROR] at com.google.cloud.tools.jib.registry.RegistryErrorExceptionBuilder.build(RegistryErrorExceptionBuilder.java:101)
[ERROR] at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.newRegistryErrorException(RegistryEndpointCaller.java:212)
[ERROR] at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call(RegistryEndpointCaller.java:153)
[ERROR] at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call(RegistryEndpointCaller.java:114)
[ERROR] at com.google.cloud.tools.jib.registry.RegistryClient.callRegistryEndpoint(RegistryClient.java:623)
[ERROR] at com.google.cloud.tools.jib.registry.RegistryClient.pushBlob(RegistryClient.java:564)
[ERROR] at com.google.cloud.tools.jib.builder.steps.PushBlobStep.call(PushBlobStep.java:89)
[ERROR] at com.google.cloud.tools.jib.builder.steps.PushLayerStep.call(PushLayerStep.java:92)
[ERROR] at com.google.cloud.tools.jib.builder.steps.PushLayerStep.call(PushLayerStep.java:33)
[ERROR] at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
[ERROR] at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:76)
[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:1570)
[ERROR] Caused by: com.google.cloud.tools.jib.http.ResponseException: 404 Not Found
[ERROR] PUT https://ghcr.io/v2/<my github account>/quarkus-container-test-app/blobs/upload/71ba3b51-0288-4178-9ffd-294ed05b75bd?digest=sha256:5b0c897254676b61b0c37140317cef5338584e42eddf10fd3c56e3681ae51511
[ERROR] {"errors":[{"code":"BLOB_UPLOAD_INVALID","message":"blob upload invalid"}]}
[ERROR]
[ERROR] at com.google.cloud.tools.jib.http.FailoverHttpClient.call(FailoverHttpClient.java:355)
[ERROR] at com.google.cloud.tools.jib.http.FailoverHttpClient.call(FailoverHttpClient.java:266)
[ERROR] at com.google.cloud.tools.jib.registry.RegistryEndpointCaller.call(RegistryEndpointCaller.java:138)
[ERROR] ... 12 more
[ERROR] Caused by: com.google.api.client.http.HttpResponseException: 404 Not Found
[ERROR] PUT https://ghcr.io/v2/<my github account>/quarkus-container-test-app/blobs/upload/71ba3b51-0288-4178-9ffd-294ed05b75bd?digest=sha256:5b0c897254676b61b0c37140317cef5338584e42eddf10fd3c56e3681ae51511
[ERROR] {"errors":[{"code":"BLOB_UPLOAD_INVALID","message":"blob upload invalid"}]}
[ERROR]
[ERROR] at com.google.api.client.http.HttpResponseException$Builder.build(HttpResponseException.java:293)
[ERROR] at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1118)
[ERROR] at com.google.cloud.tools.jib.http.FailoverHttpClient.call(FailoverHttpClient.java:349)
[ERROR] ... 14 more
[ERROR] -> [Help 1]