3

Docker コンテナー内で node.js を実行しています。docker を起動すると、node.js (または nodemon) を呼び出して起動するスクリプトが呼び出されます。

その node.js 内で最初に行うことの 1 つは、次の方法で IP を探すことです。

var ifaces = os.networkInterfaces();

しかし、私を当惑させる理由により、常に機能するとは限りません。

  1. AWS+Docker+manualstart ノード = はい!
  2. AWS+Docker+autostart nodemon= YES
  3. AWS+Docker+自動起動ノード = NO

1 と 3 は同一の単純なコマンドを使用するため、ネットワークが開始される前に docker がそれを開始していると推測されます。そのため、初期化スクリプトでネットワークを早期に開始するか、何かが現れるまでポーリングすることができます。ネットワークを開始してIPを設定するLinuxコマンドを知っている人はいますか?

4

1 に答える 1

1

os.networkInterfaces が null 以外の値を返すまで、setInterval を選択しました。時間は、低速の AWS マイクロ インスタンスでは 100 ミリ秒から 500 ミリ秒まで変化します。

于 2015-06-25T05:12:05.433 に答える