2016-02-02 64 views
3

我有一個在我的Ubuntu服務器(Digital Ocean)上運行的Meteor應用程序。我使用Meteor Up(MUP)來部署並保持應用程序正常運行。一切正常。MONGO_URL用於在一臺服務器上運行多個Meteor應用程序

但是,當我嘗試在同一臺服務器上部署第二個應用程序時,連接到MongoDB時出現問題。我得到啓動「調用部署過程:失敗」長和不可讀的錯誤信息,然後用

Waiting for MongoDB to initialize. (5 minutes) 
connected 
myapp start/running, process 25053 
Waiting for 15 seconds while app is booting up 
Checking is app booted or not? 
myapp stop/waiting 
myapp start/running, process 25114 

結束和應用程序拒絕運行。我已經嘗試了許多事情來解決這個問題,如果需要更多信息,我會編輯這篇文章,但我不確定什麼是相關的。基本上我不明白錯誤消息,所以我需要知道這是怎麼回事?

編輯: 我想補充說,如果我進入項目文件夾並使用「流星」命令,我的應用程序運行良好。一切按預期運行。只有當我嘗試將其部署爲具有MUP的長期生產模式時,纔會出現此錯誤。

編輯: 我開始嘗試mupx而不是mup。這一次,我甚至不能讓過去的安裝過程中,我得到了以下錯誤消息:

[Neal] x Installing MongoDB: FAILED 

-----------------------------------STDERR----------------------------------- 
Error response from daemon: no such id: mongodb 
Error: failed to remove containers: [mongodb] 
Error response from daemon: Cannot start container c2c538d34c15103d1d07bcc60b56a54bd3d23e50ae7a8e4f9f7831df0d77dc56: failed to create endpoint mongodb on network bridge: Error starting userland proxy: listen tcp 127.0.0.1:27017: bind: address already in use 

但我不明白爲什麼! Mongod顯然已經在27017端口上運行了,第二個應用程序應該只是向該實例添加一個新數據庫,對嗎?我不知道我在這裏錯過了什麼,爲什麼MUP無法訪問MongoDB。

回答

1

這是棘手的沒有你mup.json看看這裏發生了什麼。鑑於你所說的話,它看起來像你的第二個應用程序部署試圖覆蓋/引導mongodb在第一個被鎖定,mongodb環境無法啓動,導致失敗。您應該解決這個不同的方式:

  • 如果你的目標是要分享您的MongoDB,從你的第二mup.jon你的第一個MongoDB實例點MONGO_URL。這通常是沿着2701X端口的東西。由於它是共享數據庫,因此一個數據庫中的更改可能會影響另一個數據庫
  • meteor-up監督你的應用程序從一個流星 - 測試好的東西到node + mongodb環境的部署。您可以在DO服務器上產生另一個mongod實例: mongod --port 2701X --dbpath /your/dbpath --fork --logpath /log/path,然後在那裏指向MONGO_URL
  • 最後但並非最不重要,mupxdocker在引擎蓋下。爲您的部署使用mupx應該隔離兩個應用程序。
+0

最初對於這兩個應用程序,我的mup.json文件在「env」變量中給每個應用程序一個唯一的PORT,而將MONGO_URL留空。我假定這兩個應用程序都會在默認的mongod端口27017上創建數據庫(由應用程序名稱調用)。從那時起,我嘗試了許多其他MONGO_URL值,但第二個應用程序沒有成功。我會嘗試mupx! –

+0

PORT變量應該對mongod實例沒有影響,因爲它只是告訴你的應用程序監聽流量的端口。如果您不確定mongod實例是否事先在您指向的url:port上運行,則爲第二個應用程序設置不同的MONGO_URL值將不起作用。另外,設置mongodb可能會非常棘手,特別是auth/replicaset/oplog部分,所以如果你經歷了這個,請檢查你是否擁有正確的權限。 – ko0stik

+0

但是,mupx應該避免所有:) – ko0stik

相關問題