我有两个Docker容器,一个用于运行节点服务器,另一个用于运行mongo。
我想做的是在安装mongo映像时,我需要它使用node.js来用我拥有的脚本填充mongo。
对mongo和node.js分别使用容器的最佳方法是什么?
当前,我的想法是,当我创建mongo容器时,我将安装node并作为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.js
。tasks/seed-database.js
只是您编写的脚本,该脚本与应用程序一起存在,但可以独立于服务器运行,仍然可以require
使应用程序的其他部分以及在Web请求之外执行其他操作(种子数据库)。
设置数据库后,引导您的node.js服务器: docker run -d -P -e "MONGO_DB=host:port/database" yourcorp/node-app supervisor app.js
获取公开的端口和环境变量可以根据您的需要来设置它们。如果您提供更多详细信息,我们可以提供更好的示例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句