我正在尝试为 java 应用程序构建 docker 镜像。 我在 dockerfile 中完成了以下操作:
FROM java:8
RUN javac HelloDocker.java
CMD ["java","HelloDocker"]
当我尝试构建图像时,它抛出以下异常:javac:找不到文件:HelloDocker.java
HelloDocker.java 文件和 Dockerfile 位于同一目录中。
另外,当我尝试单独编译java文件(通过javac HelloDocker.java)时,它没有抛出任何错误。
最佳答案
您正在使用已弃用的图像。您应该使用 openjdk
图像。见下文
https://hub.docker.com/_/openjdk/
此外,您还需要 javac
,因此您应该使用带有 jdk
标记的 Javac,而不是 jre
标记。
所以尝试openjdk:8-jdk
编辑-1
您还需要复制 Dockerfile 中的文件。当您使用 docker build . 时,当前目录文件可用作上下文,但它们不在图像内
FROM java:8
WORKDIR /app
COPY HelloDocker.java .
RUN javac HelloDocker.java
CMD ["java","HelloDocker"]
关于javac : File Not Found Error in Dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45811133/