javac:在Dockerfile中找不到文件错误
我正在尝试为java应用程序构build一个docker镜像。 我在dockerfile中完成了以下工作:
FROM java:8 RUN javac HelloDocker.java CMD ["java","HelloDocker"]
当我正在尝试构build映像时,它将抛出以下exception: javac: file not found: HelloDocker.java
HelloDocker.java文件和Dockerfile位于同一目录中。 另外,当我试图单独编译java文件(通过javac HelloDocker.java),它没有抛出任何错误。
您正在使用已弃用的图片。 你应该使用openjdk
图像。 见下面
https://hub.docker.com/_/openjdk/
你也需要javac
所以你应该使用jdk
标签而不是jre
标签。
所以试试openjdk:8-jdk
编辑-1
还需要复制Dockerfile中的文件。 当你使用docker build .
,那么当前目录文件作为上下文可用,但它们不在图像内
FROM java:8 WORKDIR /app COPY HelloDocker.java . RUN javac HelloDocker.java CMD ["java","HelloDocker"]
假设这是完整的Dockerfile,则需要在Docker镜像的文件系统中有一个名为HelloDocker.java的文件,然后才能使用“RUN javac HelloDocker.java”编译文件。 您可以使用docker COPY / ADD命令将文件从主机的文件系统复制到docker镜像。