谷歌应用引擎节点js docker应用程序的IP地址

时间:2015-02-18 11:45:36

标签: node.js google-app-engine ip docker

这与此处的stackoverflow问题有关:Run Websocket on GAE以及我在此处提出的上一个问题:Google app engine: IP of docker custom runtime container, node.js

根据第二个问题,我尝试使用boot2docker参数在生产Google自定义运行时nodejs环境中部署mozilla's browserquest版本,如下所示:

docker version
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): darwin/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef

我通过使用boot2docker ip地址成功地在本地生产环境的沙盒副本中运行应用程序。

但是我不知道在部署到生产时我应该使用哪个IP地址。我的应用程序位于http://[appname].appspot.com地址,但我认为无法通过该域访问服务器;我试过ping我的应用程序并使用该ip来配置我的脚本,但这并不起作用。

因此我想知道是否有可能

  • 强制Google应用引擎自定义运行时部署中的docker容器具有特定的ip地址,以便可以为其预配置代码,或者
  • 使用jpettazo's pipework project之类的东西,通过以某种方式在部署时确定容器的ip来自动配置部署,然后当应用程序尝试访问服务器时(比如当一个人创建了一个角色并单击按钮开始时)游戏),它调用提供相关IP地址的函数。

1 个答案:

答案 0 :(得分:1)

希望这会对你有帮助..

var os = require('os');

var interfaces = os.networkInterfaces();
var addresses = [];
for (var k in interfaces) {
    for (var k2 in interfaces[k]) {
        var address = interfaces[k][k2];
        if (address.family === 'IPv4' && !address.internal) {
            addresses.push(address.address);
        }
    }
}

console.log(addresses);