J’ai node.js en cours d’exécution dans un conteneur Docker. Lorsque je lance docker, il appelle ensuite un script qui appelle node.js (ou nodemon) pour démarrer.
À l’intérieur de ce node.js, une des premières choses qu’il fait est de chercher son adresse IP via
var ifaces = os.networkInterfaces();
Mais ça ne marche pas tout le temps, pour des raisons qui me mystifient:
comme 1 et 3 utilisent des commandes simples identiques, je suppose que docker le lance avant le démarrage du réseau. Donc, soit le script d’initialisation peut démarrer le réseau plus tôt ou interroger jusqu’à ce que quelque chose apparaisse. Est-ce que quelqu’un connaît la commande linux pour démarrer le réseau définir l’ip?
J’ai choisi de définir justeInterval jusqu’à ce que os.networkInterfaces renvoie une valeur non nulle, sa durée varie de 100 ms à environ 500 ms sur une micro-instance AWS plus lente.