2015-11-05 88 views
1

我有兩個docker容器,一個運行我的節點服務器,另一個運行我的節點服務器,另一個運行mongo。Docker單獨容器節點,mongo,如何從節點容器中填充mongo

我想要做的是當我安裝我的mongo圖像,我需要它使用node.js來填充我有一個腳本的mongo。

用mongo和node.js的單獨容器做到這一點的最佳方法是什麼?

目前我的想法是,當我創建我的mongo容器時,我安裝節點並運行我的填充腳本作爲RUN命令。

有沒有更好的方法呢?

回答

0

如果您有一個批處理作業是您的Node.js應用程序的一部分,您可以使用具有該應用程序的映像啓動另一個容器,只需將不同的可執行文件傳遞給docker run命令即可。

下面是一個例子。如果你有這兩個圖像:

  • yourcorp/node-app
  • yourcorp/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

入門暴露的端口和環境變量設置你希望他們是你的方式。如果您提供更多細節,我們可以舉出更好的例子。