我有兩個docker容器,一個運行我的節點服務器,另一個運行我的節點服務器,另一個運行mongo。Docker單獨容器節點,mongo,如何從節點容器中填充mongo
我想要做的是當我安裝我的mongo圖像,我需要它使用node.js來填充我有一個腳本的mongo。
用mongo和node.js的單獨容器做到這一點的最佳方法是什麼?
目前我的想法是,當我創建我的mongo容器時,我安裝節點並運行我的填充腳本作爲RUN
命令。
有沒有更好的方法呢?
我有兩個docker容器,一個運行我的節點服務器,另一個運行我的節點服務器,另一個運行mongo。Docker單獨容器節點,mongo,如何從節點容器中填充mongo
我想要做的是當我安裝我的mongo圖像,我需要它使用node.js來填充我有一個腳本的mongo。
用mongo和node.js的單獨容器做到這一點的最佳方法是什麼?
目前我的想法是,當我創建我的mongo容器時,我安裝節點並運行我的填充腳本作爲RUN
命令。
有沒有更好的方法呢?
如果您有一個批處理作業是您的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.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
入門暴露的端口和環境變量設置你希望他們是你的方式。如果您提供更多細節,我們可以舉出更好的例子。