использование внешней зависимости jar в докере - PullRequest
0 голосов
/ 27 сентября 2019

Я использую внешние jar-файлы, добавленные через scope = system с $ {basedir} / src / main / java / ..., добавленным как systempath в подгруппу зависимостей в pom.xml.Всякий раз, когда я использую проект локально из IntelliJ, нет никаких предупреждений или ошибок.Однако, когда я пытаюсь запустить файл .jar из контейнера докера, я получаю исключения о зависимости.

Я попытался добавить файлы jar через библиотеки в структуре проекта в IntelliJ и просто добавить файлы jar в папке libs подкорень.Сначала я предоставлял абсолютный путь, но затем я изменил его на $ {basedir}, потому что абсолютный путь не был отображен как том в контейнере докера.Можно ли как-нибудь упаковать внешние jar-файлы в jar-файл проекта, чтобы я мог использовать его в контейнере Docker?

1 Ответ

0 голосов
/ 27 сентября 2019

IIUC у вас есть как минимум два варианта:

1.Добавьте JAR-файлы в новый образ (согласно приведенному выше предложению @LexByte).

Предполагая, что JAR-файлы находятся на ${PWD}/jars на вашем хост-компьютере, и вы хотите, чтобы они были ${WORKDIR}/jars в контейнере:

FROM [[original-image]]
WORKDIR ...
COPY ./jars ./jars

Затем убедитесь, что ваш код ссылается на JAR с помощью [[WORKDIR]]/jars/[[some-jar]]

NB [[WORKDIR]], независимо от того, что вы указали в качестве рабочего каталога контейнера.

2,Смонтируйте JAR-файлы в контейнер, используя существующий образ:

docker run ... --volume=${PWD}/jars:[[WORKDIR]]/jars ...

NB [[WORKDIR]] - все, что вы будете использовать в качестве рабочего каталога контейнера.Это место, где JAR будут установлены в контейнере.

...