javac : File Not Found Error in Dockerfile

标签 java docker

我正在尝试为 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/

相关文章:

django - 在 django 应用程序的 Docker 容器中处理 RACE CONDITION,其中包括 postgres、nginx、celery、redis、elasticsearch

python - 我无法从容器外部访问 docker

node.js - Docker在npm安装上失败

java - 如何更改 Spring RepositoryRestResource 链接中的服务器名称?

java - Spring beans内的事务

java - 如何在不重新编译的情况下在另一台机器上运行Gradle测试?

java - 将具有公共(public)字段的不同对象的多个列表合并到另一个列表中

java - 用替代品替换小程序

docker - gcloud : add docker run arguments while deploy docker container to GCE

azure - Docker 镜像未在 Web 浏览器 Azure Kubernetes 中显示