为Spring MVC创建并运行docker镜像

时间:2018-06-13 16:03:56

标签: spring windows spring-mvc docker tomcat

我希望将我的spring mvc应用程序部署到docker。我用这个dockerfile创建了基于tomcat的图像:

Sub RenameSheet()
Dim wbname
wbname = Replace(ActiveWorkbook.Name, ".xlsx", "")
    ActiveSheet.Select
    ActiveSheet.Name = wbname
    Range("A1").Select
End Sub

和我的其他控制人员:

FROM tomcat:8.5.31-jre8
ADD  /target/my-app.war /usr/local/tomcat/webapps/
CMD ["catalina.sh", "run"]
EXPOSE 8080

当我使用我的IDE从本地Tomcat运行我的应用程序时,它可以工作,当我转到localhost时:8080我得到了控制器响应,但现在当我创建图像并运行它时,我去了localhost:8080在浏览器中我可以看tomcat主页,不是我的端点响应。你能告诉我我做错了吗?

这是我用来创建和运行图像的命令:

@RestController
@RequestMapping("")
public class IndexController {
    @RequestMapping(path="", method = RequestMethod.GET)
    public String[] findAll() {
        return new String[] {"sdfsdsdf", "sfsdfsff", "fdsfsfsfdfffdsfsdf"};
    }
}

docker build -t myapp .

我正在使用Win10。谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

您似乎正在将Web应用程序部署到本地tomcat中的根上下文路径。但是,docker镜像中的tomcat已经有一个部署到根上下文路径的欢迎页面应用程序。

您需要做的是删除此欢迎页面应用并将您的应用重命名为ROOT.war,然后进行部署。

FROM tomcat:8.5.31-jre8
RUN rm -rvf /usr/local/tomcat/webapps/ROOT
ADD  /target/my-app.war /usr/local/tomcat/webapps/ROOT.war
CMD ["catalina.sh", "run"]
EXPOSE 8080