java 找不到tomcat docker容器控制器上的.war

jum4pzuy  于 2023-04-19  发布在  Java
关注(0)|答案(1)|浏览(76)

我有一个用java写的web应用程序,它暴露了一些servlet。在同一个应用程序中,有一个index.html与其他页面连接。我部署了war文件,当我使用IntelliJ运行服务器时,一切正常。我看到索引文件暴露在localhost上:8080/Project 30

但是当我试图在docker容器中运行war时,我无法访问servlet。我可以访问index.html的页面,但是当我试图访问一些暴露为servlet的url时,我得到了404。
这是docker compose的代码

version: "3.9" #version of docker-compose
  services:
    mysql:
      container_name: mysql
      image: mysql
      ports:
      - "3307:3306"
      environment:
        - MYSQL_ROOT_PASSWORD=admin                    #default password of the MySQL container
      volumes:
        - ./data:/var/lib/mysql                         #database data volume
        - ./src/main/db:/docker-entrypoint-initdb.d  #database files called when the container is built and started for the first time
    web:
      container_name: tomcat
      build: .
      ports:
        - "8080:8080"

这是docker文件

FROM maven:3.6.3 AS build

# Copy pom.xml to the image
COPY pom.xml /home/app/pom.xml
RUN mvn -f /home/app/pom.xml verify clean --fail-never

# Copy the source code
COPY src /home/app/src
RUN mvn -f /home/app/pom.xml package

#FROM tomcat:latest
FROM tomcat:8.0-alpine

LABEL maintainer="emme"
COPY --from=build /home/app/target/Project30.war /usr/local/tomcat/webapps/
EXPOSE 8080

CMD ["catalina.sh", "run"]

War以正确的方式部署,因为这些是容器

中的文件
Tomcat运行正常,就像我在localhost:8080上一样,我看到了Tomcat的管理页面。我不明白我做错了什么

cngwdvgl

cngwdvgl1#

这个问题似乎与tomcat版本有关。我尝试了tomcat9,所有工作正常

相关问题