我有一个非常简单的webapp。您可以认为这是一个带有输入框的网页,用户将输入发送到后端,后端返回一个json,然后前端将json插入jinja2模板并提供一些html。而已。 (后端还有一个MySQL数据库)
我想将此停靠。原因是这个网络应用程序碰巧有了一些牵引力,我曾经有过恐慌,我推动了什么东西,网站坏了,我试着回滚它仍然坏了,我最终花了几个小时出汗尽快修复它。我希望Docker解决这个问题。
问题:我应该如何将整个东西拆分成不同的容器?鉴于我未来的计划,后端必须转换为前端连接的API。所以他们将是两个独立的容器。我的问题是如何连接它们。 API容器应该公开前端容器GET的http:80端点吗?我想我的困惑来自这样一个事实:我必须运行两个python进程:一个用于API显然,然后另一个除了向API发送输入并将返回的json呈现为jinja2模板之外什么都不做。 (然后是MySQL数据库的一个容器)。
或者我应该将渲染器和API保存在同一容器中,但是有两个页面,例如用户知道的/search.html和“秘密”的api /api.html但我会将来需要什么?
这张照片有意义,还是让我过于复杂?
答案 0 :(得分:0)
对此没有严格的规则,但一个好的经验法则是每个容器一个进程。这将允许您在不同的应用程序中重用这些容器。相反,有些人发现创造"脂肪容器"他们在一个容器中运行整个应用程序的单个图像。
您还必须考虑类似的事情,"这将如何影响我的部署流程?"和#34;我是否有足够的测试反馈循环,可以让我轻松地进行这些更改?"。此链接似乎很有用:https://valdhaus.co/writings/docker-misconceptions/
如果这真的是一个小应用程序,并且你没有在SOA环境中运行,那么一个容器可能会得到你想要的东西。