Docker为节点mongo分开容器,如何从节点容器中填充mongo

我有两个docker集装箱,一个运行我的节点服务器,另一个运行mongo。

我想要做的是当我安装我的蒙哥图像,我需要它使用node.js来填充我有一个脚本蒙戈。

用mongo和node.js单独的容器做这个最好的方法是什么?

目前我的想法是,当我创build我的mongo容器,我安装节点并运行我的填充脚本作为RUN命令。

有没有更好的方法呢?

如果你有一个批处理作业是Node.js应用程序的一部分,你可以使用具有该应用程序的映像启动另一个容器,只需将不同的可执行文件传递给docker run命令即可。

这是一个例子。 如果你有这两个图像:

  • yourcorp/node-app
  • yourcorp/mongo

启动你的mongo容器: docker run -d -P yourcorp/mongo

在运行脚本的容器中运行批处理作业,然后退出。 例如: docker run -e "MONGO_DB=host:port/database" yourcorp/node-app node tasks/seed-database.jstasks/seed-database.js只是一个你编写的应用程序的脚本,但可以独立于服务器运行,但仍然可能require应用程序的其他部分,并在Web请求之外执行操作(种子数据库)。

在数据库安装完成后启动你的node.js服务器: docker run -d -P -e "MONGO_DB=host:port/database" yourcorp/node-app supervisor app.js

获取暴露的端口和环境variables设置你想要的方式取决于你。 如果你提供更多的细节,我们可以举出更好的例子。