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

时间:2015-11-05 14:47:34

标签: node.js mongodb docker

我有两个docker容器,一个用于运行我的节点服务器,另一个用于运行mongo。

我想要做的是当我安装我的mongo图像时,我需要使用node.js用我的脚本填充mongo。

使用mongo和node.js的单独容器执行此操作的最佳方法是什么?

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

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

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

这是一个例子。如果您有这两张图片:

  • docker run
  • yourcorp/node-app

启动您的mongo容器:yourcorp/mongo

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

在设置数据库后启动node.js服务器: require

以您希望的方式设置公开的端口和环境变量取决于您自己。如果您提供更多详细信息,我们可以提供更好的示例。