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.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
获取暴露的端口和环境variables设置你想要的方式取决于你。 如果你提供更多的细节,我们可以举出更好的例子。
- 域名,Nginx和WordPress
- 无法连接到数据库泊坞窗容器
- 无法从同一主机上的其他容器到达“静态映射”泊坞窗容器
- Docker Compose – 启动后自动启动shell脚本
- Docker的图像是“selenium / standalone-firefox:3.4.0-chromium”,它包含Firefox和Chrome驱动程序吗?
- Docker插件:java.io.FileNotFoundException:/ src / main / docker / Dockerfile gradle-docker失败
- 在Docker容器上使用Hadoop和Spark
- 是否有可能在docker中运行android模拟器/ android应用程序?
- jenkins亚马逊ecr插件的问题