Запуск докера с проблемой разрешения Java - PullRequest
1 голос
/ 19 сентября 2019

Я хочу создать докер с java и протестировать его, однако я получаю ошибку

Это файл докера

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

Как я могу проверить простоеЯва программа и видите, что она работает?

1 Ответ

4 голосов
/ 19 сентября 2019

Вы переопределяете команду (CMD) в dockerfile при запуске

docker run mydocker  javac Simple.java

Вот что docker doc говорит:

Эта команда является необязательнойпотому что человек, который создал ИЗОБРАЖЕНИЕ, возможно, уже предоставил КОМАНДУ по умолчанию, используя инструкцию CMD Dockerfile.Как оператор (человек, запускающий контейнер из образа), вы можете переопределить эту инструкцию CMD, просто указав новую КОМАНДУ

Я немного изменил ваш Dockerfile, здесь:

FROM openjdk:8-jdk-slim

COPY  Simple.java /project/

WORKDIR /project

RUN ["javac" ,"Simple.java"]
CMD ["java" ,"Simple"]

Теперь вы сможете запускать

docker run mydocker

Output;

➜ DockerTest docker run mydocker
Hello Java
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...