2017-08-22 62 views
1

我正在嘗試爲java應用程序構建一個docker鏡像。 我做的dockerfile如下:javac:在Dockerfile中找不到文件錯誤

FROM java:8 
RUN javac HelloDocker.java 
CMD ["java","HelloDocker"] 

當我試圖建立圖像它拋出以下異常:javac: file not found: HelloDocker.java 的HelloDocker.java文件和Dockerfile是在同一目錄下。 另外,當我試圖單獨編譯java文件(通過javac HelloDocker.java)時,它沒有拋出任何錯誤。

回答

0

您正在使用已棄用的圖像。你應該使用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"] 
+1

問題不在於javac未找到 –

+0

@Tarun謝謝你的回答。問題不是設置WORKDIR.After設置dockerfile中的WORKDIR它正在工作! –

+0

糟糕,閱讀我的編輯 –

0

假設這是完全Dockerfile,你需要有一個名爲HelloDocker.java文件在您的碼頭工人形象的文件系統,然後才能使用「RUN javac HelloDocker.java」編譯文件。您可以使用docker COPY/ADD命令將文件從主機的文件系統複製到docker鏡像。