Как просто создать образ Docker из Dockerfile с помощью fabric8 docker-maven-plugin? - PullRequest
0 голосов
/ 30 мая 2018

Вот определение плагина:

        <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]

Что я хочу - просто выполните команду docker build -t . через maven без любого плагина упаковка / строительство / сборка цели (или подцели).Да, у этого плагина есть много возможностей, но мне нужно просто собрать докер без архивации tar, и это нужно сделать из папки target.

Как это сделать ???

1 Ответ

0 голосов
/ 30 мая 2018

Что делает docker, так это собирает все файлы, которые должны быть добавлены к образу, в tar-файл и отправляет это демону docker для построения образа.

Плагин создает этот tar-файл в подкаталоге папки target (которая является вашим ${project.build.directory}).Взятие целевой папки в качестве основы для подключаемого модуля docker неявно включает в себя созданный tar-файл, поэтому вы получаете ошибку.

Что я делал в проекте, так это копировал все файлы, которые должны быть добавлены визображение (ADD / COPY) и каталог Dockerfile в ${project.build.directory}/dockerfile, а затем создайте изображение с помощью <dockerFileDir>${project.build.directory}/dockfile</dockerFileDir>

...