我有一個在我的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。
最初對於這兩個應用程序,我的mup.json文件在「env」變量中給每個應用程序一個唯一的PORT,而將MONGO_URL留空。我假定這兩個應用程序都會在默認的mongod端口27017上創建數據庫(由應用程序名稱調用)。從那時起,我嘗試了許多其他MONGO_URL值,但第二個應用程序沒有成功。我會嘗試mupx! –
PORT變量應該對mongod實例沒有影響,因爲它只是告訴你的應用程序監聽流量的端口。如果您不確定mongod實例是否事先在您指向的url:port上運行,則爲第二個應用程序設置不同的MONGO_URL值將不起作用。另外,設置mongodb可能會非常棘手,特別是auth/replicaset/oplog部分,所以如果你經歷了這個,請檢查你是否擁有正確的權限。 – ko0stik
但是,mupx應該避免所有:) – ko0stik