【问题标题】:How just build docker image from Dockerfile with fabric8 docker-maven-plugin?如何使用fabric8 docker-maven-plugin从Dockerfile构建docker镜像?
【发布时间】:2018-05-30 16:22:30
【问题描述】:

这是一个插件定义:

        <plugin>
            <groupId>io.fabric8</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.26.0</version>
            <configuration>
                <registry>000000000000.dkr.ecr.us-east-1.amazonaws.com/my-aws-registy-0000000000000:latest</registry>
                <images>
                    <image>
                        <name>my-image</name>
                        <build>
                            <tags>
                                <tag>000000000000.dkr.ecr.us-east-1.amazonaws.com/my-aws-registy-0000000000000:latest</tag>
                            </tags>
                            <dockerFileDir>${project.build.directory}</dockerFileDir>
                        </build>
                    </image>
                </images>
            </configuration>
        </plugin>

在资源阶段Dockerfile 复制到target 之后。当我尝试调用 docker:build 目标时,我得到了:

[ERROR] Failed to execute goal io.fabric8:docker-maven-plugin:0.25.2:build (default-cli)
on project my-project: Execution default-cli of goal
io.fabric8:docker-maven-plugin:0.25.2:build failed: A tar file cannot include itself. -> [Help 1]

我想要什么 - 只需简单地通过 maven 执行 docker build -t . 命令没有任何插件包装/构建/组装目标(或子目标) . 是的,这个插件有很多可能性,但我只需要 docker build 没有任何 tar 归档,这必须从 target 文件夹完成。

怎么做???

【问题讨论】:

    标签: java maven docker fabric8 docker-maven-plugin


    【解决方案1】:

    docker 所做的是将所有应该添加到镜像中的文件组装成一个 tar 文件,并将其发送到 docker 守护程序以构建镜像。

    插件在target 文件夹(即您的${project.build.directory})的子目录中创建此tar 文件。将目标文件夹作为 docker 插件的基础隐式包含创建的 tar 文件,因此会出现错误。

    我在一个项目中所做的是将所有应该添加到图像(ADD/COPY)和Dockerfile的文件复制到${project.build.directory}/dockerfile目录,然后使用@创建图像987654327@

    【讨论】:

      【解决方案2】:

      为什么不使用 exec-maven-plugin 来调用 docker 本身?

      我遇到了和你一样的问题,发现如果我将 Dockerfile 放在目标文件夹之外,它可以工作,例如

      &lt;dockerFile&gt;${project.basedir}/Dockerfile&lt;/dockerFile&gt;

      【讨论】:

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