我正在为部署到多个环境的应用程序构建 docker 映像。对于其中一些环境,上下文根需要不同。
到目前为止,我使用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')并将其添加到 var 文件的 WEB-INF 目录中。
似乎 payara micro 没有使用该配置文件的上下文根规范。该应用程序仍然基于“.war”的文件名进行部署。我可以根据环境变量重命名“.war”,但这不允许任何“斜杠”/嵌套路径。或者有没有办法做到这一点?
我已经没有想法了,也没有在类似的问题和错误中找到任何解决方案。谢谢你的帮助。