Docker 中的 Tomcat V9:无法访问 localhost:8080/manager/html

问题描述 投票:0回答:1

我想在 Compose 环境中将我的 Java Servlet 应用程序(大学项目)部署为 Docker 容器。但我在根路由上得到了 404。甚至路由“localhost:8080/manager/html/”也无法访问。我是否错过了 Dockerfile 中的某些内容?

FROM maven:3-eclipse-temurin-17 as build

WORKDIR /deploy
COPY . .
RUN mvn compile war:war -DskipTests

FROM tomcat:9-jdk17-temurin
COPY --from=build /deploy/target/amazonlite-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/
EXPOSE 8080
CMD ["catalina.sh", "run"]
docker tomcat
1个回答
0
投票

TDLR: 使用

-p 8080:8080
运行镜像时需要共享端口。

详情

假设您的项目如下所示:

├── Dockerfile
├── pom.xml
└── src
    └── main
        └── webapp
            ├── index.jsp
            └── WEB-INF
                └── web.xml

🗎

Dockerfile
与原始问题中完全相同。

🗎

index.jsp
一个简单的组件,只是为了“做某事!”。

<html>
<body>
    <h2>Hello from AmazonLite!</h2>
</body>
</html>

构建并运行:

docker build -t amazonlite .
# 🚨 The important bit here is the -p argument.
docker run -it -p 8080:8080 amazonlite

-p 8080:8080
选项将确保容器上的端口 8080 可用作主机上的端口 8080。

如果您访问 http://127.0.0.1:8080/,您将收到 404 错误。您需要访问http://localhost:8080/amazonlite-1.0-SNAPSHOT/才能看到测试页面。您需要根据需要自定义路径,但这至少可以让您连接到您的服务!

© www.soinside.com 2019 - 2024. All rights reserved.