Как указать путь к папке для java в Play-With- Docker -Lab? - PullRequest
0 голосов
/ 02 мая 2020

Здравствуйте, ребята, у меня есть задание, в котором мне нужно запустить jar на docker. Мне нужно выполнить задание в среде песочницы labs-play-with- docker (https://labs.play-with-docker.com/). Назначение должно быть сделано путем создания Dockerfile, затем изображения и запуска контейнера. У банки есть 3 переменные, которые я хочу дать стандартное значение. Поэтому я хочу, чтобы при запуске контейнера он запускал файл jar с предопределенными значениями для переменных. Jar создает папку с именем FOLDERNAME в FOLDERPATH и каждые 10 секунд создает текстовый документ, в который записывается PRINTMESSAGE.

Это мой Dockerfile:

FROM openjdk:11-jre-slim

ADD jarName.jar jarName.jar


CMD FOLDERPATH=root FOLDERNAME="arg" PRINTMESSAGE="arg" java -jar jarName.jar

Мы должны основать наше изображение на openjdk:11-jre-slim. В конце концов мне (!) Удалось успешно построить образ.
Теперь, когда я запускаю контейнер с командой "docker run <containerName>"
, я получаю исключение:

"Exception in thread "main" java.nio.file.InvalidPathException: Invalid folder path passed.: <folder path> at s04a02.Main.main(Main.java:37)". 

Я просто хотите, чтобы путь к папке был установлен в папке root labs-play-with- docker.

Итак, мой вопрос: как я могу это сделать? Путь к папке "~" или "root" или "/ root" не работает для меня. Когда я указываю путь к папке в моей ОС, он работает, но я не знаю путь к папке для виртуальной машины.

Было бы замечательно, если бы вы могли мне сказать и объяснить, какой путь к папке вы использовали и почему ты это использовал.

1 Ответ

0 голосов
/ 02 мая 2020

Если я правильно понял, в основном вам нужно установить рабочий каталог в вашем контейнере.

В вашем Dockerfile:

FROM openjdk:11-jre-slim

# destination path is automatically created if it doesn't exist
ADD jarName.jar /usr/src/labs-play-with-docker/jarName.jar

# Set current working directory to desired my_app_directory
WORKDIR /usr/src/labs-play-with-docker.

CMD ["java", "-jar", "jarName.jar"]

Команда WORKDIR используется для определения рабочий каталог контейнера Docker в любой момент времени, после чего любая команда RUN, CMD, ADD, COPY, or ENTRYPOINT будет выполняться в указанном рабочем каталоге

...