问题标签 [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 投票
2 回答
1129 浏览

java - Kubectl Java 客户端在使用 exec 时返回退出代码 3

我正在为应用程序编写一个小备份程序。这将在我的 k8s 集群中作为 CronJob 运行。在某一时刻,它应该在另一个 pod 内的数据库上触发 mysql 转储。

我的代码:

process.exitValue() 始终包含 3 + 创建的 mysql 转储文件,但不包含任何 sql 语句。有人知道我做错了什么吗?

我的备份程序的基本映像是 gcr.io/distroless/java:11 如果有帮助并且是使用Jib构建的

0 投票
0 回答
628 浏览

maven - 通过控制台使用 JIB 和动态参数创建图像泊坞窗

我需要创建使用 Jhipter 应用程序(maven、spring-boot)生成的 docker 容器。如果我通过控制台动态传递参数,则可以正常工作:

另一方面,创建我的 docker 镜像让我变得完美

当我想用我的动态参数创建 docker 容器时,我遇到了问题。我没有接受它们,虽然它没有给出错误,但它没有将其合并到它创建的图像中

0 投票
2 回答
16330 浏览

jenkins-pipeline - 如何传递 jenkins 的凭据以将 docker 映像推送到我自己的注册表?

JHipster 现在使用 maven-jib-plugin。在此之前,我在 docker-container 中运行的 jenkins 服务器能够使用 *.war 文件构建 docker 映像,并使用“Jenkinsfile”(对于 gradle,但我切换了)通过管道将其推送到我自己的 docker-registry现在到 Maven),在作业完成后,另一个作业通过使用 ssh 在远程主机上执行 shell 脚本,将新构建的 docker-image 拉到我的服务器上的新 docker-container 中。

此任务的阶段是:

现在据我所知,让它变得更容易,并且制作jib中的相关部分归结为Jenkinsfile$ jhipster ci-cd

不幸的是jib,似乎不再使用给定 $REGISTRY_USER 的 docker-registry 用户登录凭据,这些凭据与之前在 Jenkins 中运行的 docker 守护进程一样保存在 Jenkins 的“凭据”部分中。

如何告诉jibjenkins 管道中的 -plugin 使用存储在我的 jenkins 帐户中的 docker-registry-login 凭据,我认为这是/是一个安全的解决方案?我不希望在每个客户端或 github 上处理凭据(尤其是密码)。

0 投票
3 回答
9485 浏览

maven - Jib - 如何使用基础镜像中的环境变量

我有一个基本的 java 映像,其中一些预定义的 java_opts 作为环境变量。如何在插件中使用它们?

0 投票
1 回答
969 浏览

java - Jib 插件无法访问由另一个 Gradle 插件更新的 project.version

我的build.gradle设置如下(为简洁起见仅列出插件)

gitflowsemver 插件project.version基于 GitFlow 分支策略进行更新。该publish任务能够访问gitflowsemver插件更新的版本,但是当我尝试使用 构建 docker 映像时jib,它不会用更新的版本标记映像。它总是被标记为unspecified。但是,如果我取消注释该行version = '0.1.0'jib插件就可以获取该版本。我无法理解为什么。非常感谢任何帮助。

0 投票
1 回答
2814 浏览

maven - 带有 Jenkins 脚本管道的 Jib-Maven-plugin:如何登录到私有 Docker 注册表?

关于这个问题,我用脚本化的 Jenkins 管道更新了我的 JHipster-Application 并且现在有Jenkinsfile(部分遵循这些提示):

将 Jenkins 全局凭据myregistry-login保存在我的 Jenkins-Server 中到我自己的 docker 注册表 v2 docker-container https://myregistry.mydomain.com(出于安全原因更改了域)。我可以$ docker login myregistry.mydomain.com使用docker login https://myregistry.mydomain.com存储docker login myregistry.mydomain.com:443myregistry-login.

pom.xml(遵循这些提示以及thisthisthis):

whereusername和是这里imagenamede.myproject_name.MyApp占位符。

不幸的是我得到

所以withEnv没有转发给 Maven 和/或 jib-maven-plugin 没有读取<auth>-Tag,对吗?我还在做错什么?为什么会有 I/O 错误registry-1.docker.io

0 投票
1 回答
323 浏览

java - Maven JIB 在 arm32v7/adoptopenjdk docker 容器内返回“CertPathValidatorException:签名检查失败”

我正在使用安装了 Docker 的树莓派 4。我正在尝试为我的 Java 项目创建一个构建容器,并让构建容器使用Maven JIB创建 Docker 映像。当我在arm32v7/adoptopenjdk:13.0.1_9-jdk-hotspot-bionic容器中尝试此操作时,JIB 给出以下错误:

当我在笔记本电脑上的 Ubuntu 虚拟机中尝试相同的设置时,安装了 Docker 并使用了openjdk:13-jdk容器,它成功了。

我正在尝试使用 JIB 作为构建插件构建一个简单的spring initialzr java 项目。我的 pom.xml 中的构建标记如下所示:

pom.xml

由于 PKIX 错误,我立即想到了一个过时的 cacerts,所以我将 cacerts 文件从它工作的openjdk:13-jdk容器复制到arm32v7/adoptopenjdk:13.0.1_9-jdk-hotspot-bionic容器并运行maven 命令,但仍然收到相同的错误。

如果您有带有 Debian Buster OS 的 raspberry pi 4,则可以使用以下步骤重现此错误:

  1. 使用以下命令安装 docker:curl https://get.docker.com | sh
  2. 创建一个简单的spring initialzr项目并在树莓派上解压。更新 pom.xml 文件中的构建标记,使其看起来像我上面的那样。在我的例子中,解压后的更新代码在 /opt/app 下。
  3. 运行 docker 容器并使用以下命令进入 bash 终端: docker run --rm -it -v /opt/app:/opt/app -v /var/run/ docker.sock:/var/run/docker.sock -v $(which docker):$(which docker) arm32v7/adoptope njdk:13.0.1_9-jdk-hotspot-bionic bash
  4. 在 docker 容器中,将目录更改为 /opt/app:cd /opt/app
  5. 运行 maven 命令编译构建 docker 镜像:./mvnw clean package -DskipTests

我不确定这是 JIB 错误、AdoptOpenJDK 错误还是我只是忽略了什么?

亲切的问候

0 投票
2 回答
4112 浏览

maven - 如何使用 jib 正确 dockerize maven 项目

我有一个 Spring Boot maven 应用程序,我需要使用 jib 插件对其进行 dockerize,并将其发送到 azure 容器注册表注册表已设置并准备就绪,包括用户名、密码等...我的 pom.xml 如下所示:

当我运行命令“mvn compile jib:build”时,我得到以下输出:

基本映像位于公共 docker hub 存储库中。当我运行 docker pull ... - 我能够毫无问题地拉动它。

如何调整这个 pom 文件,以启用基础镜像?

0 投票
1 回答
2284 浏览

java - Docker 环境中的 Spring Boot 外部配置:application.yml 不存在

在开始解释我的问题之前,值得一提的是,虽然我正在尝试将 Maven Jib 插件与 Spring Boot 和 Kubernetes 结合使用,但即使我尝试使用普通的 docker,问题也是一样的。

我使用 Kubernetes configMap 创建了 application.yml 文件并将其作为外部文件挂载到 Pod ( /config/application.yml)。我一直面临的问题是我的应用程序无法找到该application.yml文件并抛出一个典型的异常:

通过使用不同的参数,我尝试了不同的方法来使用 Jib,如下所示。

他们都没有为我工作。我也尝试使用SPRING_CONFIG_NAME环境变量并将其设置file:/config/application.yml为 pod,但仍然是同样的问题。

我可以验证配置文件是否存在于指定位置并且没有权限问题(据我所知)。

application.yml有趣的是,当我在默认类路径中只创建一个空文件时,(src/main/resources)它通过了第一次验证并且应用程序成功加载(使用来自 的实际值/config/application),所以无论是什么问题,它都会受到之前 Spring Boot 初始验证的影响甚至将应用程序文件传递给相应的类。

0 投票
1 回答
369 浏览

dockerfile - 适用于 JDK 13 的 Google Distroless 映像

谷歌是否为 JDK 13 发布了 distroless 映像?如果没有,JDK 13 的最佳替代方案是什么?