节点js os.networkInterfaces()在AWS上通过docker entrypoint调用时不返回任何结果

时间:2015-06-25 05:12:05

标签: 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 + manualstart node = YES!
  2. AWS + Docker + autostart nodemon = YES
  3. AWS + Docker +自动启动节点=否
  4. 为1,而3使用相同的普通命令我最好的猜测是docker在网络启动之前启动它。所以要么我可以让init脚本提前启动网络,要么轮询直到出现一些东西。有没有人知道linux命令启动网络设置ip?

1 个答案:

答案 0 :(得分:1)

我选择了setInterval,直到os.networkInterfaces返回一个非null值,它在一个较慢的AWS微实例上的时间从100ms到500ms不等。