当前位置: 首页 > 知识库问答 >
问题:

无法推送到Gitlab注册表| Quarkus-Jib构建

严恩
2023-03-14

我目前正在开发Quarkus应用程序,因此需要一个CI管道容器注册表。

由于通过docker的集装箱化不起作用(docker daemon-priviliged模式),我想使用Jib,Quarkus已经支持它。

正在处理的命令:

- mvn clean package 
-Dquarkus.container-image.push=true 
-Dquarkus.container-image.registry="https://$registry" 
-Dquarkus.container-image.username=$username 
-Dquarkus.container-image.password=$deployToken 
-Dquarkus.container-image.name=(group)/(project)
  • 用户名=部署令牌用户名
  • 密码=部署令牌

部署令牌拥有所有权限,所以这不应该是问题所在。

我还尝试了在注册表url中添加令牌的命令的不同变体:

  • https://username:token@注册处。gitlab。com(集团)/(项目)
  • https://name:token@注册处。gitlab。com(集团)/(项目)

但在没有这些参数的情况下很明显:

  • Dquarkus.container-image.username=$用户名
  • Dquarkus.container-image.password=$部署令牌

但我每次都得到同样的回答:

Failed to execute goal io.quarkus:quarkus-maven-plugin:1.7.2.Final:build (default) on project (project): 
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.IllegalArgumentException: 
The supplied container-image registry 'https://registry.gitlab.com/(group)/(project)' is invalid

我真的希望有人知道这里出了什么问题。

在另一个项目中,我还使用Jib对spring boot应用程序进行容器化,并将其推送到Google容器注册中心,当我提前使用Google SDK时,该注册中心正在工作。

- gcloud auth activate-service-account (account-name) --key-file=$gsdk_token
- gcloud auth configure-docker

Gitlab注册表是否有类似的方法?

共有1个答案

慕容烨
2023-03-14

此代码根据此检查抛出错误。“注册表”字符串应采用以下形式,例如,

some.registry.host.example.com[:optional_port]

因此,在你的情况下,它应该是

-Dquarkus.container-image.registry=registry.gitlab.com

我还注意到Quarkus曾经对图像引用强制执行了一种非常严格的格式(我不知道现在已经解决了);您需要查阅Quarkus插件文档,查看如何正确格式化最终图像参考。

还可以看到其他Quarkus问题:

  • https://github.com/quarkusio/quarkus/issues/8588

Jib用户的奖励:

Quarkus在内部利用Jib核心库(为Jib Maven/Gradle构建插件提供动力的同一个库)来构建容器映像,这很好。但对于那些感兴趣的人来说,Jib构建插件也有Jib Quarkus扩展(Maven/Gradle),可以直接将Quarkus应用程序容器化。

 类似资料:
  • 我无法将docker映像推送到低于错误的工件注册表 登录和拉取工作正常 詹金斯档案: Dockerfile: 我不确定这是怎么回事。我可以在jenkins从属节点上手动推送图像。但使用詹金斯会产生错误 我构建工作的日志 这是我的构建日志中的内容。

  • 我无法将docker映像推送到heroku注册表。 根据docker的说法,我已成功登录: 在那之后,我运行了,我得到了一些令人困惑的错误,说我试图推送到一个不安全的repo,而de-output中的url看起来是安全的(以https开头)。我做错了什么? 我正在使用以下jib配置: jib的Maven输出:build wiht-X:

  • 我是GitLab用户。我使用groff脚本制作一本900页的书。输出将存储在输出文件夹中。当作者进行一些更改并推送到GitLab时,Docker映像将生成这本书。 其想法是构建一个docker容器,并将该容器存储在GitLab注册表中。容器的构建工作正常,但我收到一条错误消息。 错误出现在运行脚本中。docker登录不正确。 这就是我的跑步脚本的想法。gitlab ci。yml。我收到以下错误消息

  • 我有一个小问题与我的docker注册表上openshift源安装。 我创建了一个docker注册表pod: 创建了一条路线: 创建了一个服务: Openshift的Master是在10.0.2.235上的,只有一个节点,现在我已经创建了一个spring boot应用程序,我使用maven插件docker来构建和推送映像。 当我在本地(主计算机上)运行maven push时,工作正常,但如果我在另一

  • 主要内容:部署注册表容器注册表是一个存储和内容交付系统,它存储他们的Docker(它是用于运行应用程序的预定义图像的数据库)。 部署注册表 可以使用以下命令部署注册表: 步骤(1): 首先,使用SSH(Secure Shell)登录到您的GitLab服务器。 步骤(2): 现在使用以下命令启动注册表容器: 将第一部分指定为主机端口,将第二部分指定为容器内的端口。 当Docker重新启动时,标志会自动重新启动注册表。

  • 我有一个简单的Spring Boot应用程序。我试图用jib maven插件创建它的docker图像。但当我构建这个应用程序时,它失败了,出现了401个未经授权的异常。但是我在日志中正确地给出了所有配置,我可以看到它被正确地读取了,但是在推送其失败时,图像出现了I/O错误。。 我正在使用