【问题标题】:Docker + Spring Boot/MVC WAR = Tomcat 404Docker + Spring Boot/MVC WAR = Tomcat 404
【发布时间】:2020-06-11 14:04:09
【问题描述】:

所以我正在尝试 dockerize 我的 Spring Boot Web 应用程序。在 IntelliJ 下它可以正常工作,但是一旦我部署它 - http 状态 404 就会出现而不是我的主页。

项目结构

-src
   -main
      -java
         ...my packages
      -resources
         ...application.properties and others
      -webapp
         -WEB-INF
            -views
               ...jsp pages
         -resources
            ...js, css, images
   -test

pom.xml 包括 spring-boot-starter 依赖项、Tomcat 和 spring-boot-maven 插件。

Dockerfile

FROM tomcat:8.0.51-jre8-alpine
RUN rm -rf /usr/local/tomcat/webapps/*
COPY ./target/charity-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/ROOT.war

我认为 Docker 不知何故看不到 WEB-INF 文件夹。我在这个问题上遇到了超过 2 天的问题......有什么想法吗? CMD ["catalina.sh", "run"]

【问题讨论】:

    标签: spring-boot docker spring-mvc dockerfile war


    【解决方案1】:

    只是为了确认,你正在做

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-tomcat</artifactId>
       <scope>provided</scope>
    </dependency>
    

    并在 pom.xml

    中将包装标记为战争

    另外,您需要修改应用程序的主类

    请参考以下链接 https://www.baeldung.com/spring-boot-war-tomcat-deploy

    【讨论】:

      【解决方案2】:

      仅作记录 - 这个 Dockerfile 终于奏效了:

      FROM java:8
      ADD /target/charity-0.0.1-SNAPSHOT.war charity.war
      ENTRYPOINT ["java", "-jar", "/charity.war"]
      

      【讨论】:

        猜你喜欢
        • 2015-03-10
        • 2018-12-05
        • 1970-01-01
        • 2019-02-27
        • 2019-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-11
        相关资源
        最近更新 更多