Установка 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-файл содержит этот класс.
Есть мысли, что это может быть?
Я попробовал то, что подробно описано выше.>

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