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

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

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>2.1.0</version>
    <configuration>
        <from>
            <image>openjdk:11-jdk-slim</image>
        </from>
        <to>
            <image>username/appname</image>
            <tags>
                <tag>latest</tag>
                <tag>${project.version}</tag>
            </tags>
        </to>
        <container>
            <mainClass>demo.Application</mainClass>
            <ports>
                <port>8080</port>
                <port>8787</port>
            </ports>
        </container>
    </configuration>
</plugin>

我只想在本地生成映像并运行它。我不想一劳永逸地构建并推送到Docker注册表。

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

有没有一种方法可以禁用推入和另一个仅将图像推入注册表的目标?

sajensenhanyya 回答:如何使用jib-maven-plugin构建docker镜像,但默认情况下不推送?

从JIB文档Jib Maven Plugin中,您可以运行

mvn jib:dockerBuild

这将使用Docker守护程序进行构建。

,

最近的解决方法是jib:buildTar;目标将在target/jib-image.tar(可通过<outputPaths><tar>配置的路径)上创建本地tarball。首次运行jib:buildTar(或任何jib:...个目标)将构建并缓存构建映像所需的所有内容。因此,就构建层而言,后续的jib:build运行将是不可操作的。它只需要发送远程注册表中缺少的图层。

当然,解决方法的一个缺点是,它会创建不必要的压缩包,该压缩包可能很大。


与您的问题无关,您不需要设置<tag>latest</tag>,因为目标图像参考username/appname已经暗示username/appname:latest<tags>配置用于将附加标签推入<to><iamge>顶部。

,

我刚刚检查了一下,就有可能由​​Jib在本地制作图像。首先,确保您的Docker守护程序在本地运行。然后像这样:

    <to>
        <image><your-local-image-name></image>
    </to>

我想您的服务器可能没有用,因为您的Docker守护进程未运行或您的映像名称以您的用户名开头,这使Jib认为您实际上是要将映像推送至Docker Hub。

本文链接:https://www.f2er.com/2577738.html

大家都在问