【问题标题】:JKube maven plugin can't find jar file when building docker image using mvn k8s:build使用 mvn k8s:build 构建 docker 映像时,JKube maven 插件找不到 jar 文件
【发布时间】:2021-03-14 18:04:34
【问题描述】:

我正在尝试使用 JKube 构建 API 并将其部署到我的 K8S 集群,但是当我使用 mvn k8s:build 时出现此错误:

[INFO] --- kubernetes-maven-plugin:1.1.1:build (default-cli) @ trips-api ---
[INFO] k8s: Running in Kubernetes mode
[INFO] k8s: Building Docker image in Kubernetes mode
[INFO] k8s: [carpooling/trips-api:latest]: Created docker-build.tar in 2 seconds 
[ERROR] k8s: Failed to execute the build [Error while trying to build the image: Unable to build image [carpooling/trips-api:latest] : "COPY failed: no source files were specified" ]

这是我Dockerfile的内容:

FROM adoptopenjdk/openjdk11:latest
VOLUME /tmp
COPY target/*.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

注意:我确保在我的 target/ 目录下我有正确的 jar 文件。

有人知道我为什么会收到这个错误吗?

【问题讨论】:

  • 嗨,插件似乎在抱怨target/ 目录中没有部署工件。你确定你已经完成mvn packagemvn clean install发出mvn k8s:build
  • 您可以分享一个可重现的项目吗?你能加入聊天吗gitter.im/eclipse/jkube
  • @RohanKumar 我验证了 target/ 不为空。我只是按照您的要求将此线程复制到讨论中。我怎么能分享一个可重复的项目?你想加入我的 bitbucket 吗?
  • Np,让我尝试准备一个复制器并分享它以防它是机密的

标签: java docker dockerfile fabric8 jkube


【解决方案1】:

Eclipse JKube 具有用于将文件添加到容器映像的组装机制。使用零配置 Dockerfile 模式时,程序集名称设置为 maven。您需要在项目文件前面加上 maven 才能访问它。所以你的 Dockerfile 应该是这样的:

FROM adoptopenjdk/openjdk11:latest
VOLUME /tmp
COPY maven/target/*.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

我用你的 Dockerfile 内容:https://github.com/r0haaaan/eclipse-jkube-spring-boot-simple-dockerfile 用一个简单的演示项目对此进行了测试,它似乎对我来说没问题。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 2018-10-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 2020-03-21
    • 2018-08-22
    • 2020-09-10
    相关资源
    最近更新 更多