我正在尝试在 docker 中构建我的应用程序并尝试启动它。下面是我的码头工人文件,
FROM openjdk:11.0.7
MAINTAINER "Kannan Ramamoorthy"
RUN mkdir /var/myapp
WORKDIR /var/myapp
COPY . .
RUN ./gradlew build -x test
EXPOSE 8080
RUN ls /var/myapp/build/libs/myapp*.jar
RUN whoami
USER root
ENTRYPOINT ["java", "-jar", "build/libs/myapp*.jar"]
一些观察,
whoami
打印root
.ls
打印文件。- 如果我将入口点更改为其他内容,例如
"ping", "google.com"
,我可以进入服务器并启动 jar。 - 我尝试在最后添加
CMD ["-start"]
,正如这里所建议的那样(尽管我还不明白为什么(。 - 我尝试给出
jar
仍然相同的错误的绝对路径。
这些都不起作用。关于修复的任何建议以及为什么以这种方式发生?
发现问题是通配符不适用于 Dockerfile 的入口点语句,这里讨论了问题的解决方案和原因