170 похожих чатов

Друзья, пытаюсь запихать джарку в докер Докерфайл максимально простой FROM

registry.access.redhat.com/ubi8/openjdk-11:1.11
COPY target/quarkus-app/*.jar .
EXPOSE 8082
ENTRYPOINT ["java" , "-jar" , "quarkus-run.jar"]

но при запуске контейнера я ловлю

Error: Could not find or load main class io.quarkus.bootstrap.runner.QuarkusEntryPoint
Caused by: java.lang.ClassNotFoundException: io.quarkus.bootstrap.runner.QuarkusEntryPoint

При запуске этой же джарки ручками все работает , мейн класс имеется , но в поме нигде его не указывал в плагинах (с ним также выскакивало)

собирал через ./mvnw package , сижу уже третий день с этой задачкой. Может кто направить на ход мыслей?

15 ответов

35 просмотров

Толстый джар нужен... упаковать все зависимости в один исполняемый джар.

Islam-Yusubov Автор вопроса
Evgenii Morozov
Толстый джар нужен... упаковать все зависимости в ...

Делал и нет не работает. Quarkus предлагает в таком случае делать сборку через ./mvnw package , и даже в случае с fat jar , разве запускалась бы она локально без задоринки?

Islam Yusubov
Делал и нет не работает. Quarkus предлагает в тако...

Если джар не толстый, то в entry point должен быть вручную составлен весь класспас - все зависимости.

Islam-Yusubov Автор вопроса
Evgenii Morozov
Если джар не толстый, то в entry point должен быть...

Не совсем понимаю что значит "вручную составить вес класспасс" и все еще не пойму почему для докера оно критично , можно подробнее плиз?

Islam Yusubov
Не совсем понимаю что значит "вручную составить ве...

Если у тебя толстый джар, то ты говоришь java -jar path.to.jar Если не толстый, то надо так java -cp ./:folder/kafka.jar:folder/guava.jar path.to.jar

Islam Yusubov
Не совсем понимаю что значит "вручную составить ве...

Вот, ключик cp и перечисление всех джарников после него как раз и есть указание классапаса.

Islam-Yusubov Автор вопроса
Evgenii Morozov
Если у тебя толстый джар, то ты говоришь java -jar...

Аа , чот новенькое погуглю пойду. Во всяком случае недаано jar-with-dependencies собранный ручками кидал мне тоже самое

Islam-Yusubov Автор вопроса
Evgenii Morozov
Вот, ключик cp и перечисление всех джарников после...

Звучит как нехилая работенка , лучше фэт

Islam Yusubov
Аа , чот новенькое погуглю пойду. Во всяком случа...

Вот, jar-with-dependencies это как раз толстый джар. В нём там есть модифицированный класслоадер, который умеет загружать классы из джаров изнутри джара и он исполняемый. Такой можно запустить через java -jar path.to.jar

Islam Yusubov
Звучит как нехилая работенка , лучше фэт

так обычно они все в одной директории лежат

Islam Yusubov
Звучит как нехилая работенка , лучше фэт

Конечно. И для мавена, и для грэдла есть плагины, которые заворачивают все депенденси. А кваркус ещё и сканирует классы и выкидывает их, чтобы уменьшить размер итогового джарника.

В комплекте с кваркусом идут докерфайлы. В зависимости от режима сборки либы могут лежать в разных папках, причём в ходе развития кваркуса это всё менялось.

Islam-Yusubov Автор вопроса
Sergey Bezrukov
В комплекте с кваркусом идут докерфайлы. В зависим...

Докерфайл выше произошел как раз от одного из них. С ним вот это и случалось и я решил до максимума ужать все настройки

Islam Yusubov
Докерфайл выше произошел как раз от одного из них....

Могу, если интересно, кинуть в личку свой вариант для кваркуса. Целью была минимизация внешних скачиваний в процессе сборки.

Islam-Yusubov Автор вопроса
Sergey Bezrukov
Могу, если интересно, кинуть в личку свой вариант ...

Да, было бы круто. Мне ща любая инфа хороша, на этапе ознакомления

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта