使用Java权限问题运行Docker

时间:2019-09-19 08:12:50

标签: java docker

我想用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程序并查看其工作原理?

1 个答案:

答案 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