我想用Java创建一个泊坞窗并对其进行测试,但是出现错误
这是docker文件
FROM openjdk:8-jdk-slim
…
COPY Simple.java /project/
WORKDIR /project
CMD ["java" ,”--version”]
我尝试运行文件Simple.java
class Simple{
public static void main(String args[]){
System.out.println("Hello Java");
}
}
当我运行以下命令时:
docker run mydocker javac Simple.java
我得到了错误:
Simple.java:1: error: error while writing Simple: Simple.class (Permission denied)
class Simple{
^
1 error
我如何测试一个简单的Java程序并查看其工作原理?
答案 0 :(得分:4)
您正在运行时覆盖dockerfile中的命令(CMD)
docker run mydocker javac Simple.java
docker doc在这里说:
此命令是可选的,因为创建IMAGE的人员可能已经使用Dockerfile CMD指令提供了默认COMMAND。作为操作员(通过图像运行容器的人员),您只需指定新的COMMAND即可覆盖该CMD指令
我在这里更改了您的Dockerfile:
FROM openjdk:8-jdk-slim
COPY Simple.java /project/
WORKDIR /project
RUN ["javac" ,"Simple.java"]
CMD ["java" ,"Simple"]
现在您应该可以运行
docker run mydocker
输出;
➜ DockerTest docker run mydocker
Hello Java