gpt4 book ai didi

docker - 如何使用Maven三角帆插件创建Muttilayer图像

转载 作者:行者123 更新时间:2023-12-02 21:31:45 25 4
gpt4 key购买 nike

我想使用maven三角帆插件构建我的一个微服务的镜像,并且我知道可以在多层体系结构中创建docker镜像。我在Dockerfile中手动执行此操作。
但不确定如何使用Maven三角臂插件实现
以下是具有用于构建镜像的配置的插件。
请指导我创建多层图像。

<profile>
<id>jib</id>
<build>
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<from>
<image>gcr.io/test/java:11</image>
</from>
<to>
<image>aa/${project.artifactId}</image>
<tags>
<tag>latest</tag>
<!--suppress MavenModelInspection -->
<tag>Test</tag>
</tags>
</to>
<container>
<ports>
<port>7575</port>
<port>9000</port>
<port>9001</port>
<port>9002</port>
</ports>
<jvmFlags>
<jvmFlag>-Duser.timezone=GMT</jvmFlag>
<jvmFlag>-Dfile.encoding=utf-8</jvmFlag>
<jvmFlag>-XX:MaxRAMFraction=2</jvmFlag>
<jvmFlag>-XX:+UseG1GC</jvmFlag>
<jvmFlag>-XX:+UseStringDeduplication</jvmFlag>
</jvmFlags>
<volumes>
<volume>/tmp</volume>
</volumes>
</container>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>dockerBuild</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>

最佳答案

(首先,Jib 1.0.0已过时。截至目前,最新版本为2.6.0。)
Jib为您做分层,创建优化的图像。那是使用Jib的主要要点之一:不是考虑Docker,而是专注于编写Java代码。 Jib的使命是使几乎没有Docker知识的任何Java开发人员都可以以优化的方式轻松地将其Java应用容器化。
仅供引用,多层不是Jib的唯一好处。还有许多其他优点,其中之一就是重现性强。例如,在编写Dockerfile时,层的顺序很重要,因为您将使所有缓存的“上”层无效,并且如果“下”层发生更改,则必须重新构建它们。此外,即使您的项目并未真正更改,使用Docker进行重建通常也会导致创建新层(因此会生成新镜像),从而导致构建时间增加,并浪费整个地方的存储和网络带宽。
如果您仍然好奇并了解更多有关这些的信息,请引用以下内容:

  • Jib FAQ: How are Jib applications layered?
  • Optimizing image storage in Docker repository using Jib for Spring Boot
  • https://github.com/GoogleContainerTools/jib/issues/2534#issuecomment-649208526

  • 为了完成答案,Jib有一个 extension mechanism,您可以使用在存储库中找到的第一方Layer-Filter扩展来进一步自定义图层。但是对于大多数人来说,很少需要过滤扩展。

    最后,无需添加 <tag>latest</tag><tags>用于 additional tags:latest隐含在 aa/${project.artifactId}中,就像 docker push aa/foo暗示 aa/foo:latest一样。
     <image>aa/${project.artifactId}</image>
    <tags>
    <tag>latest</tag>

    关于docker - 如何使用Maven三角帆插件创建Muttilayer图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64274138/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com