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 ответов

53 просмотра

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

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
Могу, если интересно, кинуть в личку свой вариант ...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта