Dockerizing简单的webbapp:如何挑选哪些容器?

我有一个非常简单的Web应用程序。 你可以认为这是一个带有input框的网页,后者将用户input发送到后端,后端返回一个json,然后前端将json插入jinja2模板并提供一些html。 而已。 (在后端也有一个MySQL数据库)

我想dockerize这个。 原因是这个networking应用程序碰巧已经得到了一些牵引力,我曾经有过一些惊吓,我推动的东西,网站打破了,我试着滚回去,它仍然是坏的,我最终花了几个小时出汗尽快修复它。 我希望Docker解决这个问题。

问题:我应该如何将整个东西分成不同的容器? 考虑到我未来的计划,后端将不得不变成前端连接到的API。 所以他们将是两个独立的容器。 我的问题是如何连接他们。 API容器应该公开一个http:80端点,前端容器从哪里来? 我想我的困惑来自于这样一个事实,那就是我必须运行两个python进程:显然是一个API,然后是另一个除了向API发送input并将返回的json渲染成jinja2模板之外什么都不做的事情。 (然后是MySQL数据库的一个容器)。

或者我应该把渲染器和API保存在同一个容器中,但是有两个页面,例如用户知道的/search.html和api /api.html这个“秘密”,但是我需要未来?

这张照片是否有意义,还是我过于复杂?

对此没有严格的规定,但是每个容器都有一个很好的经验法则。 这将允许您跨不同的应用程序重复使用这些容器。 相反,有些人认为创build“胖容器”是有用的,因为他们在一个容器中运行整个应用程序时,只有一个图像。

你还必须考虑这样的事情,“这将如何影响我的部署过程? 和“我有足够的testing反馈循环,使我能够轻松地进行这些更改吗?”。 这个链接似乎很有用: https : //valdhaus.co/writings/docker-misconceptions/

如果这确实是一个小应用程序,并且您不是在SOA环境中运行,则一个容器可能会得到您想要的。