问题标签 [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 回答
424 浏览

spring-boot - JHipster Docker Build with dev,swagger,no-liquibase

我正在尝试将我的 JHipster 微服务应用程序作为 Docker 映像运行。我想启动一个开发容器进行测试。该应用程序使用 no-liquibase 配置文件在没有 Liquibase 的情况下运行。

我运行以下命令: mvnw package -Pdev,swagger,no-liquibase verify jib:dockerBuild

但是,我得到的输出确认没有找到配置文件:

没有活动配置文件集,回退到默认配置文件:默认

然后我在与 Liquibase 相关的日志中出现错误(应该禁用)。例如:

在类路径资源 [com/treasury/prime/ms/config/LiquibaseConfiguration.class] 中定义名称为“liquibase”的 bean 创建错误:调用 init 方法失败;嵌套异常是 liquibase.exception.MigrationFailedException:更改集 config/liquibase/changelog/20191114045739_added_entity_Risk.xml::20191114045739-1::jhipster 迁移失败:原因:liquibase.exception.DatabaseException:表已存在;

如何在 dev、no-liquibase、swagger 配置文件处于活动状态的情况下构建 docker 映像?

0 投票
1 回答
960 浏览

spring-boot - 使用 Jib for Spring Boot 优化 Docker 存储库中的图像存储

使用 Jib 构建 Docker 镜像是否有助于优化远程 Docker 存储库存储?

我们在 Docker 中使用 Spring Boot 和 Gradle。目前,我们正在创建标准的胖 Boot jar,其中包含所有依赖项,然后我们用它创建一个图像,如下所示:

这导致我们每次构建时都会生成一个大 (250 MB) 的新映像,即使实际上更改的代码很少。这是因为 fat jar 包含共享依赖项(不经常更改)和我们的代码。这是我们私有存储库中存储空间的低效使用,我们想改变它。

为此,想法如下:

  • 我们创建一个只包含 /opt/libs 中的依赖项的基础镜像,让我们调用它spring-base:1.0.0并推送到我们的私有 Docker 注册表。

  • 我们将该图像用作仅包含我们的代码的应用程序图像的父/基。Dockerfile 看起来与此类似(未经测试,只是为了呈现概念):

    /li>

期望这些镜像要小得多,具有依赖关系的大基础镜像只存储一次,节省大量存储空间。

我们的一位同事研究了 Jib 并坚持认为它确实做到了这一点,但是在阅读了整个文档和常见问题解答并玩了一下之后,我不太确定。我们集成并使用./gradlew jibDockerBuild它,它似乎确实为依赖项、资源和类创建了层,但仍然只有一个大图像。Jib 似乎专注于加快构建时间(通过利用 Docker 层缓存)和可重现的构建,但我认为当我们将该图像上传到我们的存储库时,相对于我们当前的解决方案没有任何改变 - 我们仍将存储“静态”依赖项多次,但现在我们将有多个图层,而不是每个新图像中只有一个。

有更多 Docker 和 Jib 经验的人能否解释一下 Jib 是否为我们提供了我们正在寻找的存储空间优化?

编辑:在等待答案时,我玩弄了所有这些并使用了https://github.com/wagoodman/divedocker system dfdocker images检查尺寸并查看图像和图层,似乎 Jib 确实做了什么我们需要。

0 投票
1 回答
1849 浏览

angular - 如何在使用 jib 时创建 docker-compose.yml 文件?

我使用 jib 插件创建图像,而 docker-compose 需要 Dockerfile。我如何将已通过 jib 制作的图像链接到我的 docker-compose 以便它可以在进程中构建我的后端?

0 投票
3 回答
11985 浏览

spring-boot - 如何使用 jib-maven-plugin 构建 docker 镜像,但默认不推送?

我有一个简单的 SpringBoot 应用程序,我想使用Jib Maven 插件构建 docker 映像。以下是我的插件配置:

我只想在本地构建图像并运行它。我不想一口气构建并推送到 docker 注册表。

当我运行命令mvn jib:build时,它会使用我来自 Docker config (/Users/username/.docker/config.json)的凭据自动推送到 DockerHub 。

有没有办法可以禁用推送和另一个目标只是将图像推送到注册表?

0 投票
3 回答
1282 浏览

java - 即使在 gradle build 中排除后,也可以在 docker 容器中使用 Spring Boot DevTools

所以我们使用 Spring boot 来交付我们的应用程序。我们使用 Jib 插件来监控创建 docker 镜像并运行它们。我们使用 gradle 来构建项目,并且开发工具被标识为developmentOnly依赖项。正如在https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-devtools的 spring 文档中提到的那样。

但是,当它在 prod 的容器中运行时,我仍然会看到它时不时地重新启动。我的问题是 gradle 配置并没有真正将它从包装中排除。我需要明确设置-Dspring.devtools.restart.enabled=false参数吗?

解决方案 :

原来是玩游戏的 gradle jib 插件。虽然 spring 文档是关于如何从 gradle spring boot 项目中删除依赖关系的。指定 a developmentOnlyonly 的技术有助于告诉 gradle 忽略开发工具。jib gradle 插件有自己的想法。

它在构建 docker 映像时包含所有 jar,并且无法排除任何 jar。唯一合理的方法是在build.gradle中自定义gradle jib插件来写这个,

这将确保即使 jar 包含在内,容器环境也会重新启动。

参考:https ://github.com/spring-projects/spring-boot/issues/15382

0 投票
2 回答
5191 浏览

spring - 使用自定义基础映像使用 jib 构建 docker 映像时出现未经授权的错误

我必须创建一个 docker 映像,从一个 distroless 基础映像开始,并带有一些自定义文件。我在我的 Spring Boot 项目中使用 JIB 和 maven。我正在使用 Docker 工具箱在 Windows 7 上工作。这是我现在要做的步骤:

1)使用这些条目创建Dockerfile :

2)执行命令:

3) 在 pom.xml 上添加以下行:

4)执行命令(使用我的 docker.io 的 ID 和密码):

4)执行构建命令

但该过程返回我这个错误:

我忘记了什么?谢谢

0 投票
1 回答
1693 浏览

jib - 吊臂 - “找不到‘useCurrentTimestamp’”

我将 jib 添加到 pom.xml 文件中,如下所示:

运行以下构建命令后,

我收到以下错误。

UseCurrentTimestamp 已在配置中。经过网上搜索,我只找到一个条目:https ://github.com/GoogleContainerTools/jib/issues/413 。我在页面上看不到解决方案。

什么不见​​了?

0 投票
1 回答
5321 浏览

java - 离线使用 jib maven 插件构建 docker 容器的问题

我从这里关注 Spring Boot Docker 教程。

我在有互联网连接时得到了确切的结果。现在我需要在没有互联网连接的环境中产生相同的结果。我将 maven 存储库和 docker 映像复制到新环境中。我很确定 maven 和 docker 已经启动并运行。

当我尝试运行以下命令时com.google.cloud.tools:jib-maven-plugin:dockerBuild -Dimage=eureka,我收到错误消息。我猜有些文件插件无法找到但不确定哪些文件。

我正在添加错误消息

有人可以指出我应该在哪里看,或者此时我有什么遗漏吗?

这是我的 DockerFile

我没有更改 DockerFile 中的任何内容。

0 投票
2 回答
1082 浏览

spring - 无法使用生成的部署和服务描述符运行 pod 和服务

在 Ryan Baxter 的Spring On Kubernetes 研讨会之后,我遇到了一个我无法解决的问题。在“部署到 Kubernetes”这一步,生成 depoyment.yaml 和 services.yaml 文件后,我运行

我得到验证错误:

运行后

kubectl apply -f ./k8s --validate=false

我明白了

这是yaml文件:

根据 Harsh 的建议,我将 apiVersion 更改为 apps/v1 并再次运行 kubectl apply 命令。

根据手表中显示的内容,我运行

其中 svc/my-app 显示在手表中。它产生

为了清理,我跑

它产生

我不知道这些问题是我的操作错误还是某些错误引起的。

0 投票
2 回答
2379 浏览

docker - 在 Gitlab CI 中运行 Maven jib 插件时无法连接到 docker 守护进程

我正在尝试使用 jib Maven 插件在 Gitlab 持续集成中使用我的应用程序构建 docker 映像,但我无法使用 dind (docker-in-docker) 服务将插件连接到 docker 守护程序。目前我在我的 gitlab-ci.yml 文件中使用这个配置:

这是我得到的错误:

[错误] 无法执行目标 com.google.cloud.tools:jib-maven-plugin:0.9.11:dockerBuild (default-cli) on project my-application: Build to Docker daemon failed, 也许你应该确保 Docker已安装并且您有正确的权限来运行它-> [帮助 1]


更新

我更新到 2.2.0 并且它在本地运行。我之前添加了docker images命令,插件似乎在Gitlab CI中找不到docker命令:

$ docker images && mvn compile jib:dockerBuild /bin/bash: line 97: docker: command not found

这是 jib 插件的配置: