问题标签 [maven-jib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1093 浏览

java - 如何使用 Jib 为多模块 Spring Boot 应用程序构建 Docker 映像

我有一个 Spring Boot 应用程序,它有许多模块,如错误模块、持久性、控制器等,如下所示

使用 Maven jib 插件在 pom.xml 中使用以下配置为此构建 docker 映像

构建成功。但是当我运行图像时,它的抛出错误Error: Could not find or load the main class com.a.b.c.Application.

如何使用 Jib 构建图像?我在这里想念什么?

0 投票
1 回答
1659 浏览

docker - Jib maven 插件无法将图像从本地推送到 DockerHub

我有简单的 Spring Boot 应用程序。我尝试使用 jib-maven 插件创建它的 docker 映像。但是当我构建这个应用程序时,它会因 401 Unauthorized 异常而失败。但是我在日志中正确地提供了所有配置,我可以看到它已被正确读取,但是在推动其失败并出现图像 I/O 错误时..

mvn clean install -Djib.httpTimeout=0 -X在构建时使用

详细日志

更新

我在配置图像 URL 时犯了一个错误。我已经在我的 DockerHub 中手动创建了一个作为java-spring的存储库,并将其附加到图像 URL 中,它将成为 Docker 不支持的多级存储库。从配置和 DockerHub(删除手动创建的 repo java-spring)中删除 repo 名称后,我可以使用 JIB 从本地推送图像。

下面的配置可以正常工作。

0 投票
1 回答
2853 浏览

java - gcr.io/distroless/java:11 使用从 11:.0.6 到 11.0.8 的基本版本

在 distroless java docker image 中更改次要版本。

当前的 java 项目使用 maven jib 来构建 docker 镜像。docker 映像的默认版本是 java 11。此 docker 映像的次要 java 版本设置为 11.0.6。

如何将此映像 gcr.io/distroless/java:11 的 Java 次要版本从 11.0.6 更改为更高版本。

0 投票
1 回答
1162 浏览

java - Jib maven 插件如何在不使用 docker 守护进程的情况下构建图像?

在过去的几个月里,我一直在试验 docker,并享受了在容器中构建和运行 java 应用程序的好处。

几周前,我偶然发现了jib maven 插件,并注意到 jib 可以在不使用 docker daemon 的情况下将映像构建到 docker 注册表。

在将 jib 添加到我的一个项目并运行后mvn clean install jib:build(在没有安装 docker 的 VM 上),我很惊讶 jib 实际构建了包含我的项目的图像并将其推送到远程注册表。

出于好奇,我上网阅读了有关 jib 如何在没有安装 docker 的情况下构建和推送 docker 映像的更多信息,但几乎没有找到关于该主题的信息。我设法找到了一篇文章,它解释了几种不使用 docker 创建图像的方法,并且还试图jib:build通过阅读它的源代码来理解 maven 目标是如何工作的,但是两者都没有让我对运行时场景背后发生的事情有任何见解jib:build.

如果有人分享更多关于 jib maven 插件以及它如何在不使用 docker 守护进程的情况下在幕后实际构建和推送图像的信息,我将不胜感激。

0 投票
1 回答
991 浏览

docker - 如何使用 maven jib 插件创建 muttilayer 图像

我想使用 maven jib 插件构建我的一个微服务的图像,并且我知道 docker 图像可以在多层架构中创建。我在 Dockerfile 中手动执行此操作。但不确定如何使用 maven jib 插件来实现以下是我用来构建图像的带有配置的插件。

请指导我创建多层图像。

0 投票
3 回答
2104 浏览

openshift - Spring Boot 应用程序(JHipster)和 Keycloak 之间通过 HTTPS 的通信问题

在我的团队中,我们正在尝试在 OpenShift (4.2) 上部署基于 JHipster (6.8.0) 的微服务堆栈。

我们目前在网关启动并尝试通过 HTTPS 与 Keycloak 通信时遇到问题(准确地说,使用基于 Keycloak 的 Red Hat Single Sign On 7.3)。

这是引发的异常:

我们认为这是因为我们的网关不信任来自 Keycloak 的证书。确实,这是使用组织证书。我们已经登录到网关尝试连接的领域的 Keycloak 管理界面。我们已将证书提取为 X.509 二进制编码的 DER 文件;感谢 Chrome 浏览器功能。

我们首先尝试简单地将这些证书添加到etc/ssl/certs/java/cacerts网关容器的文件夹中。为此,我们在项目 jib 存储库中创建了这些文件夹src/main/jib/etc/ssl/certs/java/cacerts,并将证书复制到其中。

我们已经使用 Maven 和jib:dockerBuild选项生成了网关 Docker 映像。我们将它推送到我们的 Docker 注册表并将其部署到 OpenShift。检查 OpenShift pod 后,证书已在etc/ssl/certs/java/cacerts. 但是我们仍然得到与以前相同的错误。

然后我们尝试使用信任库。因此,我们使用以下命令为每个证书创建了一个:

由于以下命令,我们检查了所有证书是否已正确添加:

然后我们将此 applicationTrustStore.jks 文件添加到 src/main/jib/etc/ssl/certs/java/cacerts我们项目的文件夹中,并将其添加到 pom.xml 中:

再一次,我们生成并重新部署到 OpenShift,但没有成功;仍然是完全相同的问题。

我们当然遗漏了一些明显的东西,但我们不能指望它。

0 投票
1 回答
746 浏览

java - 运行 dockerizing 映像时未找到主类

我有一个大学项目,其中包括构建一个 Java Spring Boot 应用程序,该应用程序可以处理多个 API,这些 API 可以启动运行 jar 应用程序的新 docker 容器。

目前,我能够试验 Spring Boot 是如何工作的,所以我构建了一个简单的 jar 来部署一个返回“Hello World!”的简单问候 API。

因此,我使用 jib-core 构建了一个 docker 映像并将其推送到我的 DockerHub 存储库,它工作正常。

问题是,当我执行以下命令docker run -i -t dmh911/localkube:latest时,会返回此错误:

这是 jar 清单文件:

我知道这个问题可能很愚蠢,但我不知道究竟是什么。

0 投票
2 回答
1692 浏览

jib - 使用 JIB 构建 Spring Boot fat JAR

我有一个多模块项目,我使用 Jib 构建 Spring Boot 应用程序。我知道将胖 JAR 放入容器会阻止有效地构建映像(请参阅),但是需要将一个特定模块打包到胖 JAR 文件中。由于我想为整个多模块项目保留相同的构建工具,是否可以使用 Jib 打包 fat jar?

我已经尝试过repackage目标

即打包应用程序,例如

0 投票
1 回答
1079 浏览

docker - 通过代理使用 mvn 和 jib 构建 docker 映像

我正在运行这个命令来构建docker图像mavenjib
mvn compile jib:dockerBuild -Djib.to.image="$IMAGE_NAME"
这个命令在我的机器上运行得很好,因为它会从互联网上下载一些东西,但是,当我尝试在管道中(在 AWS 上)运行它时,情况并非如此将在需要代理的公司网络中运行
我已经尝试过这个命令:
export MAVEN_OPTS="-DsocksProxyHost=<host> -DsocksProxyPort=<port>"
但它不起作用,我不想触摸settings.xml文件,因为我无权访问它,所以唯一的解决方案我正在寻找的是使用上面列出的命令提供代理。
这是命令的整个日志:

0 投票
1 回答
2943 浏览

jib - 由 Google Jib 和 Maven 构建的 Docker 映像的多个标签?

使用jib-maven-plugin我想用多个标签构建图像。虽然mvn jib:build基本上可以正常工作,但它“只”用latest.

我的 Mavenpom.xml定义了以下内容:

文档显示可以jib.to.tags在 XML 中使用来定义标签列表。但是,我想在 Jenkins 管道中运行构建步骤,即我不能在pom.xml.

运行命令时是否可以传递标签列表mvn,例如通过设置一些-D参数?