首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用websphere- image映像来封装应用程序

如何用websphere- image映像来封装应用程序
EN

Stack Overflow用户
提问于 2022-03-21 22:33:08
回答 1查看 296关注 0票数 0

我试图用websphere-自由映像封装一个应用程序

在我的项目中,我有这样一个Dockerfile:

代码语言:javascript
复制
FROM websphere-liberty:kernel

COPY --chown=1001:0 target/demo-1.0-SNAPSHOT.war /config/dropins/verificaciones/
COPY --chown=1001:0 src/main/config/server.xml /config/

RUN configure.sh

我的server.xml是:

代码语言:javascript
复制
<server description="Sample Liberty server">
    <variable name="default.http.port" defaultValue="9080"/>
    <variable name="default.https.port" defaultValue="9443"/>
    <webApplication location="demo-1.0-SNAPSHOT.war" contextRoot="/srp-verificaciones" />
    <httpEndpoint host="*" httpPort="9080" httpsPort="-1"/>
</server>

稍后,我运行以下命令:

代码语言:javascript
复制
$ docker build -t app .
$ docker run -d -p 8080:9080 app

但我没有得到回应。

只是一个带有hello世界的servlet。

我遗漏了什么?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2022-03-22 10:43:44

容器有几个潜在的问题:

  1. 您使用的是不包含任何功能的kernel图像,因此您的server.xml需要指定您需要的功能。
代码语言:javascript
复制
    <!-- Enable features -->
    <featureManager>
        <feature>jsp-2.3</feature>
    </featureManager>
  1. 如果使用下拉列表,则需要将war文件放入该目录而不是子目录,因此您的dockerfile应该有如下条目(没有/verificaciones/):
代码语言:javascript
复制
COPY --chown=1001:0 target/demo-1.0-SNAPSHOT.war /config/dropins

如果您使用下拉列表,并且在您的ibm-web-ext.xml文件夹中没有WEB-INF文件,那么应用程序将根据您的文件名(在本例中是/demo-1.0-SNAPSHOT )部署在context-root上。

在这种情况下,您也不能在您的<webApplication ...server.xml条目。

  1. 如果您想使用<webApplication..,那么您的应用程序应该放在apps文件夹中,而不是像这样的dropins
代码语言:javascript
复制
COPY --chown=1001:0 target/demo-1.0-SNAPSHOT.war /config/apps

在这种情况下,您可以通过在标记中定义的上下文根访问应用程序。这里有更多的细节,https://www.ibm.com/docs/en/was-liberty/base?topic=deploying-applications-in-liberty

因此,清理您的dockerfile,如果仍然有问题,从启动服务器时添加完整的server.xml和日志。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71564924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档