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

由Google Jib和Maven构建的Docker图像的多个标签?

西门胜涝
2023-03-14

使用jib-maven-plugin,我想用多个标签构建镜像。虽然mvn jib: build基本上运行良好,但它仅用date标记图像。

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

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>2.8.0</version>
    <configuration>
        <to>
            <image>my-private-registry.org/my-image</image>
        </to>
    </configuration>
</plugin>

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

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


共有1个答案

陆高峰
2023-03-14

使用-Djib。到标签=a、b、c

$ mvn package jib:build -Djib.to.tags=a,b,c
...
[INFO] --- jib-maven-plugin:2.8.0:dockerBuild (default-cli) @ hello-spring-boot ---
[INFO] Tagging image with generated image reference hello-spring-boot:0.1.0. If you'd like to specify a different tag, you can set the <to><image> parameter in your pom.xml, or use the -Dimage=<MY IMAGE> commandline flag.
[INFO] 
[INFO] Containerizing application to Docker daemon as hello-spring-boot:0.1.0, hello-spring-boot:a, hello-spring-boot:b, hello-spring-boot:c...
[WARNING] Base image 'gcr.io/distroless/java:8' does not use a specific image digest - build may not be reproducible
[INFO] Using base image with digest: sha256:34c3598d83f0dba27820323044ebe79e63ad4f137b405676da75a3905a408adf
[INFO] 
[INFO] Container entrypoint set to [java, -Djava.security.egd=file:/dev/./urandom, -cp, /app/resources:/app/classes:/app/libs/*, hello.Application]
[INFO] 
[INFO] Built image to Docker daemon as hello-spring-boot:0.1.0, hello-spring-boot:a, hello-spring-boot:b, hello-spring-boot:c
[INFO] 
[INFO] A new version of Jib (3.0.0) is available (currently using 2.8.0). Update your build configuration to use the latest features and fixes!
[INFO] https://github.com/GoogleContainerTools/jib/blob/master/jib-maven-plugin/CHANGELOG.md
[INFO] Please see https://github.com/GoogleContainerTools/jib/blob/master/docs/privacy.md for info on disabling this update check.
[INFO] 
[INFO] Executing tasks:
[INFO] [==============================] 100.0% complete
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
 类似资料:
  • 问题内容: 将获得多个标签图像。 是否可以通过像ubuntu这样的 Dockerfile 创建多个标签? 在这里,我需要的是不同内容的标签。(具有多个别名标签的内容不同) 问题答案: 您不能使用Dockerfiles创建标签,但是可以通过命令行在映像上创建多个标签。 使用此列表列出您的图片ID: 然后标记:

  • 问题内容: 我有一个目前正在转换为Maven的Ant构建。但是,Ant构建有2个构建目标-一个构建整个应用程序,一个从这些文件中的一些(仅少数)构建JAR。在Ant中,很容易有多个构建目标来处理此问题,但是我正在尝试确定在Maven中处理此问题的最佳方法。 我可以将文件的子集拆分到另一个项目中,它将拥有自己的POM。然后,第一个项目可能依赖于此项目。但是,由于文件的子集非常小(少于10个),因此为

  • 我想创建具有多个标签和图像的listView项。我创建了一个cell类: 这是我的控制器代码的一部分: selectedpart具有映像的自定义类。但是现在我完全不知道如何向这些标签发送文本,因为updateItem()方法只获得一个字符串。关于图像,我想对每一个项目分别设置不同的图像。我尝试发送到构造函数,但然后所有的图像都是一样的。我使用的是MVC,我也可以使用代码。

  • 请帮助我理解docker compose中“图像”和“构建”之间的区别

  • 目前,我发现谷歌云构建发生在构建docker图像的时候(不像我想象的那样,它会构建我的图像,然后执行我的图像来完成所有的构建)。那是在这篇文章里 谷歌云构建的快速启动 我有一个Dockerfile现在很简单 我有一个单一的下载和提取下载任何工件(zip文件)从最后的单构建运行构建(只有修改的服务器被构建或依赖于上一个CI构建的变化的服务器被构建,就像下游库可能被更改)。第一行只是列出了我需要在一个