我的Dockerfile无法访问jar文件

时间:2019-01-30 18:40:10

标签: java docker microservices

我真的是Java和Docker的新手,所以请放轻松。 我正在尝试构建两个可通信的微服务并将其运行到docker compose中,但是它返回此错误:

  

无法访问jar文件   hello-consumer-microservice-message-1.0-snapshot.jar。

这是我的dockerfile:

FROM alpine-jdk:base
WORKDIR ./files
EXPOSE 8081
CMD ["java", "-jar", "hello-consumer-microservice-message-1.0-SNAPSHOT.jar"]

我尝试将CMDENTRYPOINT交替使用,但没有成功,因此,有人可以帮助我吗?

P.S:如果您对这些主题有不错的读物,也可以将它们链接到答案中,我真的想提高自己的技能!

1 个答案:

答案 0 :(得分:1)

您可以使用COPYADD在图像中包含文件-有关更多详细信息,请参见:https://medium.freecodecamp.org/dockerfile-copy-vs-add-key-differences-and-best-practices-9570c4592e9e

根据您的情况,您只需添加行ADD hello-consumer-microservice-message-1.0-SNAPSHOT.jar app.jar

,然后将您的CMD更改为:

CMD ["java", "-jar", "app.jar"]

为了更好的可读性,我ADD将罐子命名为app.jar

因此,最终的Dockerfile将如下所示:

FROM alpine-jdk:base
WORKDIR ./files
EXPOSE 8081
ADD hello-consumer-microservice-message-1.0-SNAPSHOT.jar app.jar
CMD ["java", "-jar", "app.jar"]