Docker コンテナー内で node.js を実行しています。docker を起動すると、node.js (または nodemon) を呼び出して起動するスクリプトが呼び出されます。
その node.js 内で最初に行うことの 1 つは、次の方法で IP を探すことです。
var ifaces = os.networkInterfaces();
しかし、私を当惑させる理由により、常に機能するとは限りません。
- AWS+Docker+manualstart ノード = はい!
- AWS+Docker+autostart nodemon= YES
- AWS+Docker+自動起動ノード = NO
1 と 3 は同一の単純なコマンドを使用するため、ネットワークが開始される前に docker がそれを開始していると推測されます。そのため、初期化スクリプトでネットワークを早期に開始するか、何かが現れるまでポーリングすることができます。ネットワークを開始してIPを設定するLinuxコマンドを知っている人はいますか?