Impossible d’utiliser le sous-domaine NGINX dans le conteneur Docker

Cette question est un peu stupide, il s’agit d’utiliser les noms de service des Docker comme noms d’hôtes, alors voici le contexte:

J’utilise les conteneurs NGINX suivants: base, php-fpm et nginx. J’ai aussi un projet Laravel qui se trouve dans le projet racine, dans le dossier / api. J’exécute également haproxy sur le port 5000 pour équilibrer la charge des requêtes sur les conteneurs php-fpm.

Le conteneur de base contient l’environnement linux à partir duquel je peux exécuter des commandes vers phpunit, npm et avoir littéralement access aux fichiers d’autres conteneurs envoyés à l’aide du volume de docker-compose.

Le php-fpm contient l’environnement pour l’exécution de PHP.

Nginx contient le serveur NGINX qui est configuré pour contenir deux sites Web: le site Web racine (localhost) et le sous-domaine api (api.localhost). Le api. sous-domaine pointe vers le dossier / api dans le projet racine et le site Web racine (localhost) pointe vers le dossier / frontend dans le projet racine.

Le problème est que, dans le conteneur du service de base, je ne peux pas exécuter la commande curl pour accéder au site Web api.localhost. J’ai essayé d’utiliser curl pour accéder au nginx en utilisant le nom du service dans le docker-compose (qui est nginx):

$ curl http: // nginx

et cela fonctionne parfaitement, mais le dossier frontal répond avec le code du dossier frontal. Je ne sais pas comment utiliser le nom du service pour accéder à api.localhost dans le conteneur. j’ai essayé

$ curl http: //api.nginx $ curl http: //api.localhost

Même l’hôte local ne répond pas à la commande curl:

$ curl http: // localhost

Est-il possible d’accéder au sous-domaine à partir d’un conteneur NGINX en utilisant le nom du service comme nom d’hôte?

J’ai découvert que les sous-domaines ne fonctionnaient pas correctement avec NGINX et le nom du service Docker comme nom d’hôte.

Au lieu de cela, je devais modifier la structure de mon projet afin que je n’utilise pas de sous-domaines tout en essayant d’accéder aux URL en utilisant des noms de service en tant que noms d’hôtes.