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

2024-03-24

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

由于通过 docker 的容器化不起作用(docker 守护进程 - 特权模式),我想使用 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://用户名:[电子邮件受保护] /cdn-cgi/l/email-protection(团体)/(项目)
  • https://名称:[电子邮件受保护] /cdn-cgi/l/email-protection(团体)/(项目)

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

  • Dquarkus.container-image.username=$用户名
  • Dquarkus.container-image.password=$deployToken

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

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 注册表是否可以采用类似的方法?


错误是由抛出的这段代码 https://github.com/quarkusio/quarkus/blob/8229f0072d6afa22eb82328749ea1ab294154606/extensions/container-image/container-image-jib/deployment/src/main/java/io/quarkus/container/image/jib/deployment/JibProcessor.java#L220基于这张支票 https://github.com/GoogleContainerTools/jib/blob/dbc5b7d58532f6fd21c53faf394f68ecbf40d8fd/jib-core/src/main/java/com/google/cloud/tools/jib/api/ImageReference.java#L218。 “registry”字符串应采用以下形式:

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

因此,就你的情况而言,应该是

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

我还注意到 Quarkus 曾经强制执行过格式非常严格 https://github.com/quarkusio/quarkus/issues/8117#issuecomment-603703875图像参考(我不知道现在是否已解决);你需要咨询Quarkus 插件文档 https://quarkus.io/guides/container-image#quarkus-container-image_configuration了解如何正确设置最终图像参考的格式。

另请参阅其他 Quarkus 问题:

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

Jib 用户的奖励:

Quarkus 在内部利用了Jib核心库 https://github.com/GoogleContainerTools/jib/blob/master/jib-core(与支持 Jib Maven/Gradle 构建插件的库相同)构建容器映像。但对于那些感兴趣的人来说,Jib 构建插件还具有 Jib Quarkus 扩展(Maven https://github.com/GoogleContainerTools/jib-extensions/tree/master/first-party/jib-quarkus-extension-maven/Gradle https://github.com/GoogleContainerTools/jib-extensions/tree/master/first-party/jib-quarkus-extension-gradle)直接容器化 Quarkus 应用程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法推送到 Gitlab 注册表 | Quarkus - 臂架构建 的相关文章

  • 如何在 GITLab WebHook 中将提交 SHA 作为参数传递

    如果有代码提交到 Gitlab 我想触发 Jenkins 作业 I am using WebHooks for this 我正在尝试的网址是 http 10 192 39 32 1024 job SCMSnaps buildWithPara
  • 如何让 Gitlab CI Pipeline 始终运行某些作业,而仅在合并请求时运行其他作业?

    TL DR 我的目标是拥有一个 Gitlab CE 12 4 2 管道 该管道仅在合并请求上执行某些作业 而始终执行其他作业 在合并请求上和所有正常推送上 必须如何 gitlab ci yml想要这样做吗 我的用例 我有一个运行大量作业的大
  • 如何将标签推送到 CI 中的分支?

    我想将手动作业添加到我的拉取请求中 以在运行手动作业时标记我的源分支 该标签将触发我的 bitrise 配置的构建 然而 当我尝试推送我的标签时 我遇到了这个问题 注意 我尝试将标签推送到的分支不受保护 git checkout CI CO
  • 有什么方法可以在 Jenkins 中获取 Gitlab 管道工件吗?

    我在gitlab中有一个项目 该项目会在存储库中的每次签入时构建 并在 gitlab 管道成功时创建构建工件 我想在我的詹金斯管道工作中获得这些构建工件 有什么办法可以做到这一点吗 我在 Jenkins 中找不到任何插件来执行此操作 任何帮
  • 如何在 GitLab CI 中显示来自另一个存储库的测试

    因此 我的项目包含单元测试 当我在 GitLab 中配置 CI 系统后发出合并请求时 它们会很好地显示为绿色或红色圆圈 但现在我也有一些集成测试 它们驻留在单独的存储库中 你为什么问 因为我有多个微服务需要一起测试 并且每个微服务都有自己的
  • .gitlab-ci.yml 中的规则条件是否有 AND 选项?

    我想创建一些嵌套条件 当它是合并或合并请求并且以特定名称启动 功能 时 我需要此管道才能工作 那么 作业的 唯一 选项中是否有 AND 条件 不 那里没有 你必须使用rules https docs gitlab com ee ci yam
  • Git:推送到多个远程

    Short 如果您将多个远程存储库链接到本地 文件 是否有一种方法可以同时推送到它们 Long 由于工作原因 我的代码必须使用gitlab和github遥控器 因此 一旦我进行了一些本地更改 我就想更新这两个存储库 我的 git confi
  • 集成 Gitlab 和 TravisCi

    有没有办法将 Travis Ci 与 Gitlab 集成 或者至少使用用户名和密码而不是 Github 凭据登录 TravisCi 不 截至目前 Travis CI 与 GitHub 严格绑定 虽然确实有关于减少这一要求的讨论 但它仍然存在
  • Bitnami:如何在 Apache2 中配置 GitLab 5.0 应用程序而不具有相对根目录?

    或者如何使 GitLab 应用程序作为 Apache2 HTTP 服务器上的根应用程序 我以前没有使用过 Apache2 但是我得到了Bitnami GitLab 虚拟机 http bitnami com stack gitlab virt
  • Dapr 和 Docker Compose 指南

    我正在绕圈试图找出如何做到这一点 但我遇到了以下情况 我正在尝试将 Dapr 合并到我的 ASP NET Core 微服务中 我已按照文档在本地安装了 Dapr dapr init 结果我有三个本地运行的容器 dapr redis dapr
  • Gitlab 请求我创建一个合并请求,而不是直接推送到存储库

    我已经设置了一个deploy staging然而 每当我推入 GitLab 项目的存储库时 它有一个 DeployHQ webhook 如果这有什么不同的话 它会显示以下内容 remote remote To create a merge
  • 没有公钥,GitLab 无法克隆公共存储库

    使用亚搏体育appGitLab 6 8 2 我可以以匿名方式克隆公共存储库吗 我的用户命名空间中的存储库标记为public 如果没有在 GitLab 中保存公钥 我就无法克隆它 例如 gt ssh T email protected cdn
  • 如何修复 CI/CD 上的 SSH Webpack 构建超时 (Gitlab)

    我已经创建了与 Gitlab 的 CI CD 集成 并且在运行 CI CD 时一直拖延 webpack 和资产的最终编译 这是针对 Linux 16 04 t2 small AWS 实例的 我很好奇这是否是内存 处理器问题 尽管如果我通过
  • C++ deque vs 队列 vs 堆栈

    队列和堆栈是被广泛提及的结构 但是 在 C 中 对于队列 您可以通过两种方式实现 include
  • Gitlab:无法识别对等方的证书颁发者

    我在全新安装 gitlab 时遇到此错误 该消息如下所示 fatal unable to access https gitlab ci token email protected cdn cgi l email protection som
  • EaselJS:使用线连接 2 个容器/形状

    我希望能够单击一个容器 形状 当我移动鼠标时 会绘制一条可以连接到另一个容器 形状 一端有箭头 的线 理想情况下 我希望这条线捕捉到目标元素 我是 EaselJS 的新手 我不知道如何解决这个问题 这是我在这里遇到的关闭 我无法理解它 使用
  • 如何以编程方式从 Gitlab LFS 检索文件?

    Question 当需要身份验证时 如何以编程方式从 Gitlab 下载文件 Context 我想以编程方式从 Gitlab 检索 LFS 文件 这API https docs gitlab com ee api不幸的是 没有提供正确的终点
  • 从 gitlab docker runner 启动声纳扫描仪

    我有一个 CI 工作流程 集成了 linting 作业和代码质量作业 我的 Linting 工作是一个 docker runner 从应用程序代码启动我的 eslint 脚本 然后我的代码质量工作应该启动声纳扫描仪泊坞窗实例 检查我的代码并
  • 如何在gitlab存储库中下载单个文件夹或文件

    我有一个存储库 在此存储库中 有多个文件夹可用 我只需要此存储库中的一个文件夹 我已经尝试遵循命令 但它不起作用 克隆 有没有办法只克隆 git 存储库子目录 https stackoverflow com questions 600079
  • Windows Server 2016 中的 Docker 无法运行

    我有一个新的 Windows Server 2016 并应用了所有更新 我按照来自的命令快速开始 https learn microsoft com en us virtualization windowscontainers quick

随机推荐