Я создаю образ докера для приложения, которое развернуто в нескольких средах. Корневой контекст должен быть другим для некоторых из этих сред.
До сих пор я использовал payara / server-full в качестве базового изображения, но я хочу переключиться на облегченное payara / micro изображение.
В первом я смог установить контекстный корень, используя:
${PAYARA_PATH}/generate_deploy_commands.sh --contextroot "${CONTEXT_ROOT}"
Это означает, что я смог динамически настроить корневой контекст при запуске контейнера Docker с помощью переменной среды.
Мне не удалось найти подобную опцию для микро развертываний Payara. В качестве запасного варианта я попытался создать glassfish-web.xml со следующим содержимым:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
<context-root>__CONTEXT_ROOT__</context-root>
</glassfish-web-app>
Во время запуска контейнера (перед запуском payara micro) я заменил __CONTEXT_ROOT__
значением переменной среды (например, 'api / v1') и добавил его в каталог WEB-INF файла var.
Кажется, Payara Micro не использует спецификацию контекста-корня этого файла конфигурации. Приложение по-прежнему разворачивается на основе имени файла .war. Я мог бы переименовать «.war», основываясь на переменной окружения, но это не допускает никаких «косых черт» / вложенных путей. Или есть способ сделать это?
У меня заканчиваются идеи, и я не нашел решений в подобных вопросах и ошибках. Спасибо за вашу помощь.