【发布时间】:2021-01-17 08:06:39
【问题描述】:
我和一个朋友正在尝试在 docker 镜像中设置一个 tomcat 服务器,该镜像将运行我们将提供给它的 .war 文件。
我们运行了 Docker 镜像,这是 Dockerfile:
FROM tomcat:10-jdk8
ADD ./Build/sample.war /usr/local/tomcat/webapps/
EXPOSE 8080
如您所见,它采用 tomcat docker 映像并将我们的 sample.war 添加到 webapps 文件夹。在我看来,这应该足以运行它。
Java 应用程序是一个简单的 Spring Boot 应用程序,这是主类:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
这是我们正在使用的控制器:
package com.example.demo.repos;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/")
public class UltraRepository {
@GetMapping("/test")
public String testGet() {
return "Wow, it works!";
}
}
当我在本地运行应用程序,或者构建 .war 文件并在我的电脑上本地运行它时,它工作正常。当我访问 http://localhost:8080/test 时,给我“哇,它有效”。
但是当我们在 docker 文件中运行它并访问 http://localhost:8080/sample/test(我认为这将是正确的 url)时,我们会收到以下消息: https://i.stack.imgur.com/tMQQC.png
当我们查看运行tomcat的docker的日志时,它说它已经成功启动了应用程序。
有谁知道我们可能需要进行哪些更改才能使其正常工作?
提前致谢!
【问题讨论】:
-
你有没有进入 Docker 容器?到了那里,你检查过路径吗? .war 文件没有创建路径
/sample/test,所以您还需要复制到图像中吗?
标签: java spring-boot docker tomcat