spring-boot - Docker + Spring Boot/MVC WAR = Tomcat 404
问题描述
所以我正在尝试对我的 Spring Boot Web 应用程序进行 docker 化。在 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”,“运行”]
解决方案
只是为了确认,你正在做
<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
推荐阅读
- windows-services - Nxlog 无法收集某些目录的日志
- sql - 在 Impala 上运行查询时遇到问题
- swift - 从 Firebase [Swift] 检索数据列表
- c# - 收听有关更新 C# 的 RSS 源
- r - 如何在使用 goleum 包创建的 R 闪亮应用程序中添加身份验证系统?
- express - 如何在 apollo 服务器中实现 @include 或 @skip 指令
- mysql - 我想使用选择查询,但是 SQL 查询中的“-”和“-”是不同的
- python - 在python中的两个子进程之间共享匿名mmap
- python - 在python中使用没有选择标签的硒专门选择谷歌表单下拉列表
- php - 在本地主机上运行的 Vue 应用程序中使用带有 php 文件的 JavaScript fetch() - 相对 URL 问题