node.js - Node js os.networkInterfaces() 在通过 AWS 上的 docker 入口点调用时不返回任何结果

标签 node.js ubuntu amazon-web-services docker nodemon

我在 docker 容器中运行了 node.js。当我启动 docker 时,它会调用一个脚本来启动 node.js(或 nodemon)。

在那个 node.js 里面,它做的第一件事就是通过

寻找它的 IP
var ifaces = os.networkInterfaces();

但它并不总是有效,原因让我感到困惑:

  1. AWS+Docker+手动启动 Node = 是!
  2. AWS+Docker+autostart nodemon= YES
  3. AWS+Docker+自动启动 Node =否

因为 1 和 3 使用相同的普通命令,我最好的猜测是 docker 在网络启动之前启动它。因此,我可以让 init 脚本更早地启动网络,或者轮询直到出现某些内容。有人知道启动网络设置 ip 的 linux 命令吗?

最佳答案

我选择只设置 setInterval,直到 os.networkInterfaces 返回一个非空值,在较慢的 AWS 微型实例上,它的时间从 100 毫秒到 500 毫秒左右不等。

关于node.js - Node js os.networkInterfaces() 在通过 AWS 上的 docker 入口点调用时不返回任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31041681/

相关文章:

node.js - process.stdout.on( 'data' , ... ) 和 process.stderr.on( 'data' , ... ) 的顺序

node.js - Pact 以代码 1 退出

javascript - Gulp - 导致任务停止的错误

linux - 如何在 Ubuntu 上正确启动/停止 CouchDB 2.0

security - 使用 ECS 时保护来自 EC2 实例的出站流量规则

node.js - Cloud Functions 何时重试?

centos下的php.ini配置项

ubuntu - eBPF/XDP 无法在 Ubuntu 16.04.6 上编译

amazon-web-services - AWS API 网关 : Execution failed due to configuration error: No match for output mapping and no default output mapping configured

javascript - AWS CORS 问题 : Ajax response comes as Error even after getting 200 status code