0

我正在测试 Maven 中从带有 Fabric8 的 Spotify dockerfile 插件到仅使用 Eclipse 的 JKube 插件的一些迁移。我一直在使用我认为使用 Dockerfile 进行的足够简单的构建遇到错误。

POM 配置如下:

            <plugin>
                <groupId>org.eclipse.jkube</groupId>
                <artifactId>kubernetes-maven-plugin</artifactId>
                <version>1.5.1</version>
                <configuration>
                    <images>
                        <image>
                            <name>${docker.image.prefix}/${docker.image.name}</name>
                            <build>
                                <dockerFile>${project.basedir}/Dockerfile</dockerFile>
                            </build>
                        </image>
                    </images>
                </configuration>
            </plugin>

Dockerfile(根据上面的配置)位于项目的根目录中。这很简单

FROM adoptopenjdk/openjdk11-openj9:x86_64-ubi-jre-11.0.12_7_openj9-0.27.0
ARG JAR_FILE
ADD target/${JAR_FILE} microservice.jar
ENTRYPOINT ["java", "-jar", "microservice.jar"]

运行mvn clean install k8s:build以以下错误消息结束:

[INFO] --- kubernetes-maven-plugin:1.5.1:build (default-cli) @ persistence-svc ---
[INFO] k8s: Running in Kubernetes mode
[INFO] k8s: Building Docker image in Kubernetes mode
[ERROR] k8s: Failed to execute the build [Error while trying to build the image:<PROJ>\target\docker\<PREFIX>\<IMAGE>\build\maven\.git\objects\pack\pack-c35818936460f0bb0c1b903466f7bf1a17f22cc8.idx]

我不确定我错过了什么。我尝试添加一个 jKube 忽略文件,但这没有任何区别。

任何指针将不胜感激。

4

1 回答 1

2

看起来我在忽略文件的正确轨道上。我的语法不正确。我刚刚.git/并且需要.git/**

.git/**
src/**
target/classes/**
target/persistence-svc.jar
target/persistence-svc-sources.jar

这似乎有点疯狂,这应该会导致问题。无论如何,我确信总体上有一个更好的解决方案,但这让我无需更改插件以外的任何内容。

编辑
确实,我的用例有更好的方法。改为使用.jkube-dockerinclude这里的例子。

于 2021-12-09T07:53:00.930 回答