2017-06-16 89 views
1

我有文件mup.js的流星應用程序。和Mongo的數據庫端口同樣設置爲27018.如何通過mup更改流星部署中的mongo端口?

module.exports = { 
    servers: { 
    ... 
    }, 

    meteor: { 
    ... 

    env: { 
     PORT: 3000, 
     ROOT_URL: 'http://app.com', 
     MONGO_URL: 'mongodb://localhost:27018/meteor', 
    }, 

    docker: { 
     image: 'abernix/meteord:base', 
     imagePort: 9090, // (default: 80, some images EXPOSE different ports) 
    }, 

    ... 
    }, 

    mongo: { 
    port: 27018, 
    version: '3.4.1', 
    servers: { 
     ... 
    } 
    } 
}; 

我想對端口27018蒙戈​​,因爲服務器沒有在端口27017蒙戈但是當我鍵入:

mup setup 

我獲得:

-----------------------------------STDERR----------------------------------- 
    Error response from daemon: Container 
bb3277bc8eb71f7dc943bee81b429e0ff0343e5905f6695ed2c7cad2b562317f is not 
running  docker: Error response from daemon: driver failed programming 
external connectivity on endpoint mongodb 
(fd60247139585238bfa24a42d2fd6221c08e2d2a053d4d03ffedbbab5604fd9a): Error 
starting userland proxy: listen tcp 127.0.0.1:27017: bind: address already in 
use. 
-----------------------------------STDOUT----------------------------------- 

     3.4.1: Pulling from library/mongo Digest: 
sha256:aff0c497cff4f116583b99b21775a8844a17bcf5c69f7f3f6028013bf0d6c00c  
Status: Image is up to date for mongo:3.4.1  mongodb  mongodb  
Running mongo:3.4.1  
7dcf91a6f136d85a884323c0a1230a673d8f25a9197dc85738e44e30139c6035  
---------------------------------------------------------------------------- 

如何確保使用端口27018而不是27017?

回答

1

流星github中有一個issue與你想要做的事情有關。不幸的是,嵌入式mongo端口似乎還沒有配置。如果你設置了MONGO_URL環境變量,Meteor將不會啓動一個mongo實例,它只會嘗試連接到給定的url。

如果你想MONGO旋轉起來蒙戈的實例爲你,它會做它的默認端口,這是流星端口+ 1 從meteor help run文檔上:

--port ,-p要監聽的端口(而不是默認的3000)。 也使用端口N + 1和由--app-port指定的端口。 指定爲--port = host:port來綁定到特定的接口。

所以,如果你運行默認的(3000)端口上的流星應用程序,你會對3001

你唯一的選擇一個蒙戈例如,如果你需要有一個特定的一個蒙戈實例端口,是單獨部署數據庫。下面是關於如何dockerize您蒙戈部署一些文檔: https://docs.docker.com/engine/examples/mongodb/

一段時間的努力,你可以寫一個dockerfile,您的MUP可以用來部署既蒙戈實例和應用程序。

希望有所幫助。