Quarkus+Jib构建Docker镜像时,不安全Gitea仓库URL生成错误求助
Quarkus Jib构建Docker镜像时Gitea仓库URL错误导致推送失败
问题场景
使用Quarkus 3.15.4结合Gitea动作流水线,通过Jib构建并推送Docker镜像到Gitea容器仓库,但Jib生成了错误的仓库URL,导致推送失败返回404。
执行的Maven构建命令
mvn install -Pdev -DskipTests=true -DsendCredentialsOverHttp=true -Dquarkus.application.version=${{gitea.ref_name}} -Dquarkus.container-image.build=true -Dquarkus.container-image.name=docker/user-rest -Dquarkus.container-image.tag=${{gitea.ref_name}} -Dquarkus.container-image.push=true -Dquarkus.container-image.insecure=true -Dquarkus.container-image.registry=gitea.demmtop.local -Dquarkus.container-image.username=XXX -Dquarkus.container-image.password=xxxx
构建失败日志
[INFO] --- quarkus:3.15.4:build (default) @ user-rest --- [WARNING] [io.quarkus.agroal.deployment.AgroalProcessor] The Agroal dependency is present but no JDBC datasources have been defined. [WARNING] [io.quarkus.hibernate.orm.deployment.HibernateOrmProcessor] Hibernate ORM is disabled because no JPA entities were found [INFO] [io.quarkus.kubernetes.deployment.PropertyUtil] Kubernetes manifests are generated with 'The container port http' having default value '8080'. The app and manifests will get out of sync if the property 'quarkus.http.port' is changed at runtime. [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.20' does not use a specific image digest - build may not be reproducible [WARNING] [io.quarkus.container.image.jib.deployment.JibProcessor] Cannot verify server at https://gitea.demmtop.local/v2/. Attempting again with no TLS verification. [WARNING] [io.quarkus.container.image.jib.deployment.JibProcessor] Cannot verify server at https://gitea.demmtop.local/v2/token?service=container_registry&scope=repository:root/docker/user-rest:pull,push. Attempting again with no TLS verification. [INFO] [io.quarkus.container.image.jib.deployment.JibProcessor] Using base image with digest: sha256:8beb2186d175ec9cede987a467dfa3a1a0b6e6e2db508525d95436cf3f6afbc3 [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 21.635 s [INFO] Finished at: 2025-03-31T22:58:28+02:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal io.quarkus.platform:quarkus-maven-plugin:3.15.4:build (default) on project user-rest: 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/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) [ERROR] at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:856) [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:1583) [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 gitea.demmtop.local/root/docker/user-rest with digest sha256:e156c76c7d86756efcdb1a8e08c25fb239738fc045e35a84328a87de0d18d174 but failed because: registry returned error code 404; possible causes include invalid or wrong reference. Actual error output follows: [ERROR] Not found. [ERROR] Caused by: com.google.api.client.http.HttpResponseException: 404 Not Found [ERROR] POST https://gitea.demmtop.local/v2/root/docker/user-rest/blobs/uploads/ [ERROR] Not found.
URL问题说明
Jib生成的错误URL格式:
https://gitea.demmtop.local/v2/root/docker/user-resthttps://gitea.demmtop.local/root/docker/user-rest
正确的Gitea容器仓库URL应为:
http://gitea.demmtop.local/docker/user-rest
错误的URL格式类似Sonatype Nexus仓库的结构,而非Gitea所需的格式。
内容的提问来源于stack exchange,提问作者Demmtop




