使用Docker容器将Java App中的前端与后端分开

时间:2018-08-16 10:29:05

标签: spring docker

在Spring Framework中,尤其是在Docker中,我是一个新手,无论如何,我都希望以此方式改进我的应用程序:

当前,我有一个包含2个容器的应用程序:数据库和应用程序(基于tomcat)。在应用程序容器中,我们同时具有:前端(js文件)和后端。在构建应用程序期间,我们创建.war来存储前端文件,而在撰写命令期间,我们将这些文件作为.war文件复制到应用程序容器(tomcat工作的地方)。现在,我想为前端创建另一个容器,以将前端与后端分开,并在将来使部署过程更容易(因此,我想拥有3个容器:数据库,应用程序和应用程序前端)。这个目标可以实现吗?我想到的第一个想法是(使用docker-compose)启动应用程序容器,然后将前端从应用程序前端复制到tomcat。可能吗?

1 个答案:

答案 0 :(得分:1)

是的,绝对有可能。

因此,您需要3个容器

database, app and app-frontend

您的应用程序已通过REST API公开了您的所有功能。

然后应用前端调用这些API。

因此,换句话说,您可以将应用程序前端分离并在其他地方运行 在不同的容器中,它将正常工作。

您需要记住的几件事可能会遇到问题

  1. 一旦您将应用程序前端与应用程序分开,就会遇到跨源问题。 由于您的API和应用程序前端不在同一个地址上。因此,您可能需要在应用中允许跨源调用

  2. 可能是您需要更改API调用路径。如果您正在使用jQuery,则可能正在使用 url:“ / userdetail”。这是行不通的。您需要将其更改为“ URL”:“ IP:PORT / baseApp / userdetail”

  3. 应用程序前端应该能够与应用程序API对话。

编辑1:

回答查询

1。如何构建这样的应用程序前端容器? 要么 我的观念错了吗?

因为您将要使用静态文件。

只要您已处理好API网址,只要将这些文件放到任何Web服务器中即可。

您已完成构建应用程序前端容器的操作。

2。我需要像nginx这样的东西吗?

您可以使用任何Web服务器(例如Nginx,Apache ...)来部署您的应用程序前端