【问题标题】:Save docker image with maven fabric8 plugin使用 maven fabric8 插件保存 docker 镜像
【发布时间】:2017-05-23 03:40:55
【问题描述】:

我想在我的 pom.xml 中包含一些位来保存已构建的 docker 映像,这就是我放入 fabric8 docker mvn 插件部分的内容。

<execution>
                        <id>save</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>

我还包括了这个属性,如 fabric8 文档中所示

<properties>
               <docker.save.alias>image</docker.save.alias>
</properties>

但是当我执行 mvn 包时,我没有看到任何 image.tar。也可以将其他文件与图像 tar 打包到另一个存档中吗?

【问题讨论】:

  • 您期待什么 tar 文件?一个可以导入的Docker tar 镜像还是一个jar + Dockerfile 的tar 可以外部构建成镜像?
  • 一个 docker tar 映像,如果可能的话,一个 tar 包含该 tar 以及项目的一些资源。

标签: maven docker fabric8


【解决方案1】:

实际上你可以使用 d-m-p 导出两种 tar 档案:

  • 使用 docker:save 导出 Docker 映像本身。这是一个包含所有图像层的 tar 存档,其格式与您使用 docker save 获得的存档相同。您可以将此存档与docker import 一起使用以再次导入此图像。

  • docker:source 可用于保存 Docker tar,该 tar 将发送到 Docker 守护程序以创建映像。此存档包含构建上下文(即,您使用 Dockerfile ADDCOPY 的所有文件)和 Dockerfile 本身。

这两个目标都可以绑定到执行阶段。 docker:save 没有默认执行阶段,但docker:sourcepackage 作为其默认阶段(因此如果绑定则在安装之前创建。

因此,对于您的示例,要将 docker:save 目标绑定到包阶段,您需要为 save 目标显式配置阶段(您的示例中缺少该目标)

<execution>
   <id>save</id>
   <phase>package</phase>
   <goals>
     <goal>build</goal>
     <goal>save</goal>
   </goals>
</execution>

【讨论】:

    猜你喜欢
    • 2018-08-22
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 2018-12-06
    • 1970-01-01
    相关资源
    最近更新 更多