【问题标题】:ip address for google app engine node js docker application谷歌应用引擎节点 js docker 应用程序的 IP 地址
【发布时间】:2015-04-19 09:48:37
【问题描述】:

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

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

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 地址的函数。

【问题讨论】:

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


    【解决方案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);
    

    【讨论】:

    • 谢谢,这很有帮助,我会在一天内看看这个并评估它的实用性。
    • 我希望先检查一下你的回复,看看 npm ip 包是否在谷歌应用引擎的 docker 容器中正常运行。但是你的回答肯定让我领先于我,不管这个,解决方案的任何测试都可能超出范围,所以我很乐意接受这些理由。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多