gpt4 book ai didi

java - 如何使用 Fabric8 docker-maven-plugin 从 Dockerfile 构建 docker 镜像?

转载 作者:行者123 更新时间:2023-12-02 02:07:09 43 4
gpt4 key购买 nike

这是一个插件定义:

        <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 构建,而不需要任何 tar 归档,并且这必须从 target 文件夹中完成。

如何做到这一点???

最佳答案

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

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

我在项目中所做的就是复制应添加到图像中的所有文件( ADD/COPY )和 Dockerfile${project.build.directory}/dockerfile目录,然后使用 <dockerFileDir>${project.build.directory}/dockfile</dockerFileDir> 创建图像

关于java - 如何使用 Fabric8 docker-maven-plugin 从 Dockerfile 构建 docker 镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50609434/

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