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 , сижу уже третий день с этой задачкой. Может кто направить на ход мыслей?
Толстый джар нужен... упаковать все зависимости в один исполняемый джар.
Делал и нет не работает. Quarkus предлагает в таком случае делать сборку через ./mvnw package , и даже в случае с fat jar , разве запускалась бы она локально без задоринки?
Если джар не толстый, то в entry point должен быть вручную составлен весь класспас - все зависимости.
Не совсем понимаю что значит "вручную составить вес класспасс" и все еще не пойму почему для докера оно критично , можно подробнее плиз?
Если у тебя толстый джар, то ты говоришь java -jar path.to.jar Если не толстый, то надо так java -cp ./:folder/kafka.jar:folder/guava.jar path.to.jar
Вот, ключик cp и перечисление всех джарников после него как раз и есть указание классапаса.
Аа , чот новенькое погуглю пойду. Во всяком случае недаано jar-with-dependencies собранный ручками кидал мне тоже самое
Звучит как нехилая работенка , лучше фэт
Вот, jar-with-dependencies это как раз толстый джар. В нём там есть модифицированный класслоадер, который умеет загружать классы из джаров изнутри джара и он исполняемый. Такой можно запустить через java -jar path.to.jar
так обычно они все в одной директории лежат
Конечно. И для мавена, и для грэдла есть плагины, которые заворачивают все депенденси. А кваркус ещё и сканирует классы и выкидывает их, чтобы уменьшить размер итогового джарника.
В комплекте с кваркусом идут докерфайлы. В зависимости от режима сборки либы могут лежать в разных папках, причём в ходе развития кваркуса это всё менялось.
Докерфайл выше произошел как раз от одного из них. С ним вот это и случалось и я решил до максимума ужать все настройки
Могу, если интересно, кинуть в личку свой вариант для кваркуса. Целью была минимизация внешних скачиваний в процессе сборки.
Да, было бы круто. Мне ща любая инфа хороша, на этапе ознакомления
Обсуждают сегодня