Я создаю образ докера для приложения, которое развертывается в нескольких средах. Корневой контекст должен быть другим для некоторых из этих сред.
До сих пор в качестве базового образа я использовал payara / server-full, но я хотите перейти на облегченный образ payara / micro.
В первом случае мне удалось установить корневой контекст, используя:
${PAYARA_PATH}/generate_deploy_commands.sh --contextroot "${CONTEXT_ROOT}"
Это означает, что я мог динамически настраивать корень контекста при запуске контейнера докеров с использованием переменной среды.
Мне не удалось найти аналогичный вариант для микроразвертывания 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__CONTEXT_ROOT__
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 на основе переменной окружения, но это не допускает никаких «косых черт» / вложенных путей. Или есть способ сделать это?
Идеи заканчиваются, и я не нашел решения по подобным вопросам и ошибкам. Спасибо за вашу помощь.