【发布时间】:2018-01-23 08:03:17
【问题描述】:
我有一个简单的 MEAN 应用程序,我想多次运行它,唯一的问题是我不希望应用程序的每个实例都指向同一个数据库。 为了在 Docker 中解决这个问题,我将 Node 代码和 MongoDB 放在同一个容器中。该代码引用了一个特定的数据库,但这并不重要,因为每个容器都有自己的内部数据库服务器。 显然这很浪费,而且不是最佳实践,所以我正在寻找替代解决方案。
理想情况下,我想用一个 Node 代码实例保留一个 Docker 映像,我知道我可以使用两个不同的环境变量重建 Docker 映像两次,但这不能很好地扩展。
我在想我可以使用 Docker 网络来引用单个数据库服务器容器,然后对于包含我的节点代码的每个容器,将入口点作为自定义脚本,在开始之前将参数设置为环境变量传递给它节点服务器。 这样,每当我从该映像运行容器时,我都会将一个新的数据库名称作为节点代码将读取的参数传递给它。这样我就可以从一个图像创建无限的容器,所有容器都具有唯一的数据库,但指向同一个数据库服务器。
我不确定这是否是最好的方法,以及是否有围绕此的任何最佳实践。
干杯
【问题讨论】:
标签: mongodb docker mean devops