Тонкое изображение докера UBI с ядром не работает с плавучестью

#open-liberty

Вопрос:

Команда, можно ли использовать springBootUtility с образами UBI с уменьшенным ядром OpenLiberty (например, — ядро-тонкий-java8-openj9-ubi) ? https://openliberty.io/docs/21.0.0.7/reference/command/springbootUtility-thin.html

Потому что это выдает ошибку, как

Step 3/11 : RUN springBootUtility thin --sourceAppPath=/staging/fat-order-0.0.1-SNAPSHOT.jar --targetThinAppPath=/staging/thin-order-0.0.1-SNAPSHOT.jar --targetLibCachePath=/staging/lib.index.cache
---> Running in 3023c669c4d7
/bin/sh: springBootUtility: command not found

Функция Springbootility работает только с полными изображениями UBI OpenLiberty

Комментарии:

1. Похоже , вам следует указать полный путь к springBootUtility нему или добавить в него локализацию. export PATH=$PATH:path_to_liberty/wlp/bin/ или что-то в этом роде.

2. Спасибо, Хомел. Я уже пробовал с этим и получил ту же ошибку. У вас есть какой-нибудь пример, который показывает для изображений ubi с тонким ядром, потому что он работает нормально и построен с использованием полного образа docker

3. путь может быть неправильно определен в потоке. Я не знаю, как это сделать. кстати, вы должны описать, что вы уже пытались сделать, чтобы помочь сообществу.

Ответ №1:

На kernel-slim изображении, похоже, вообще нет этой команды. Сравнить kernel-slim :

 bash-5.1$ docker run --rm -it openliberty/open-liberty:kernel-slim-java8-openj9-ubi ls /opt/ol/wlp/bin
auditUtility      binaryLog.bat       productInfo      securityUtility.bat  serverSchemaGen
auditUtility.bat  featureUtility      productInfo.bat  server           serverSchemaGen.bat
binaryLog     featureUtility.bat  securityUtility  server.bat       tools
 

Для full :

 bash-5.1$ docker run --rm -it openliberty/open-liberty:full-java8-openj9-ubi ls /opt/ol/wlp/bin
auditUtility      binaryLog.bat  featureUtility      pluginUtility  securityUtility.bat  springBootUtility
auditUtility.bat  client     featureUtility.bat  pluginUtility.bat  server           springBootUtility.bat
batchManager      client.bat     jaxb            productInfo    server.bat       tools
batchManager.bat  ddlGen     jaxrs           productInfo.bat    serverSchemaGen
binaryLog     ddlGen.bat     jaxws           securityUtility    serverSchemaGen.bat
 

Похоже, в документации есть пробел, так как ничто не указывает на то, что вам нужно это сделать, но вам нужно установить springBoot функцию в Open Liberty, прежде чем команда будет добавлена. Скопируйте свой server.xml с помощью spring boot, указанного в образе, затем запустите features.sh :

 COPY --chown=1001:0 server.xml /config/
RUN features.sh
 

После этого springBootUtility он будет помещен в /opt/ol/wlp/bin каталог и также должен находиться на пути для использования дальнейших директив Dockerfile.

Комментарии:

1. И вот пример этого: github.com/OpenLiberty/ci.docker/blob/master/samples/…