我试图用websphere-自由映像封装一个应用程序
在我的项目中,我有这样一个Dockerfile:
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是:
<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>稍后,我运行以下命令:
$ docker build -t app .
$ docker run -d -p 8080:9080 app但我没有得到回应。
只是一个带有hello世界的servlet。
我遗漏了什么?
谢谢你的帮助。
发布于 2022-03-22 10:43:44
容器有几个潜在的问题:
kernel图像,因此您的server.xml需要指定您需要的功能。 <!-- Enable features -->
<featureManager>
<feature>jsp-2.3</feature>
</featureManager>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条目。
<webApplication..,那么您的应用程序应该放在apps文件夹中,而不是像这样的dropins: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和日志。
https://stackoverflow.com/questions/71564924
复制相似问题