3

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

在该 node.js 中,它所做的第一件事就是通过以下方式查找它的 IP

var ifaces = os.networkInterfaces();

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

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

作为 1 和 3 使用相同的普通命令,我最好的猜测是 docker 在网络启动之前启动它。所以要么我可以让初始化脚本更早地启动网络,要么轮询直到出现一些东西。有人知道启动网络设置ip的linux命令吗?

4

1 回答 1

1

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

于 2015-06-25T05:12:05.433 回答