Установка CLASSPATH в контейнере Docker с помощью DockerfileJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Установка CLASSPATH в контейнере Docker с помощью Dockerfile

Сообщение Anonymous »

Я пытался «докеризировать» микросервис, созданный с использованием Java. Однако у меня возникают некоторые проблемы с путем к классам при использовании Docker. Я на машине с Linux, использую Java open jdk 1.8. Мой файл докеров выглядит примерно так:

Код: Выделить всё

FROM openjdk:version

#`Make the directories I need
RUN mkdir -p /opt/service/libs

ENV LIBS_PATH=/opt/service/libs
ENV CLASSPATH=LIBS_PATH"/*"

COPY ./target/libs $LIBS_PATH
COPY ./target/MY_SERVICE.jar $LIBS_PATH

ENTRYPOINT java -cp $CLASSPATH "com.org.service.mainClass"
Я заметил, что когда я делаю это и повторяю $CLASSPATH внутри Docker-контейнера (используя Docker Run), он возвращает все адреса файлов jar, но с пробелом между ними вместо разделителя :. Это подразумевает две вещи: он знает, где находятся все эти файлы jar и что файлы jar были успешно скопированы. Я все еще получаю сообщение об ошибке в строке java -cp. Ошибка следующая:

Ошибка: не удалось найти или загрузить основной класс .opt.service.libs.FirstJarInLibsFolder.jar

Если я изменю CLASSPATH, чтобы в нем были разделители :, я вместо этого получаю ошибку:

Ошибка: не удалось найти или загрузить основной класс com.org.service.mainClass

хотя мой JAR-файл содержит этот класс.
Есть мысли, что это может быть?
Я попробовал то, что подробно описано выше.>

Подробнее здесь: https://stackoverflow.com/questions/760 ... dockerfile
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»