Rechercher dynamicment l’adresse d’un conteneur via son nom d’hôte dans Nginx

J’essaie actuellement d’exécuter deux conteneurs sur un seul hôte, l’un étant une application (Ruby on Rails) et l’autre Nginx en tant que proxy inverse et cache. L’application s’exécute sur le port TCP 80. Ce que je veux pouvoir faire, c’est supprimer mon conteneur d’application, le supprimer et le relancer sans avoir à redémarrer nginx. Le problème est que Nginx ne semble rechercher l’IP du conteneur qu’une seule fois, donc s’il tombe en panne puis se sauvegarde à une adresse différente, Nginx se plaindra simplement qu’il n’ya rien là.

J’ai essayé plusieurs choses:

  • Utiliser le resolver 127.0.0.11 valid=5 pour utiliser le DNS de Docker
  • Utiliser un bloc en upstream
  • Utiliser une variable pour essayer de résoudre le problème avec nginx lors de l’exécution.

Je ne sais pas où regarder, mais aucune de ces options ne fonctionne si l’application est affichée sur une adresse IP différente. Y a-t-il quelque chose qui me manque pour rendre cela impossible?

Merci.

J’ai fini par lire l’application de 12 facteurs qui m’a inspiré à supprimer le proxy Nginx vers Rails en amont, et je l’ai plutôt utilisé comme cache proxy en amont du nom DNS externe.