【问题标题】:Docker separate containers for node, mongo, how to populate mongo from node containerDocker为节点,mongo分离容器,如何从节点容器中填充mongo
【发布时间】:2015-11-06 01:12:09
【问题描述】:

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

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

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

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

有更好的方法吗?

【问题讨论】:

    标签: node.js mongodb docker


    【解决方案1】:

    如果您的 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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-20
      • 2019-07-27
      • 2020-06-16
      • 2017-09-20
      • 2020-08-12
      • 2023-04-03
      • 2017-03-06
      • 1970-01-01
      相关资源
      最近更新 更多