Appels d'API dans les conteneurs Docker
P粉764003519
2023-08-29 19:43:11
<p>J'essaie d'utiliser l'API fournie à partir d'un conteneur Docker (disons <code>container_A</code>) pour accéder à un autre conteneur (<code>container_B</code>). Ces deux conteneurs sont dans le même réseau Docker. Avant d'ajouter Docker, je ferais bien sûr des appels API à <code>http://localhost:{app_port}/{endpoint}</code> et maintenant que j'ai Dockerisé l'application, chaque service est en cours d'exécution dans un Conteneur Docker, je sais en lisant d'autres questions et sites Web que vous devez utiliser l'alias du conteneur s'ils sont sur le même réseau, ou le nom du service si vous utilisez <code>docker compose</code> ;http://container_A:8000/books</code>. J'ai fait ça mais ça ne marche pas. J'ai configuré CORS dans tous les services et j'ai également essayé d'accéder au point de terminaison à partir du <em>REST Client</em> (qui est une extension VSCode de type Postman) pour voir si cela fonctionnait, et c'est le cas. J'ai également fait de la cartographie/exposition des ports. </p>
<p>Juste pour fournir un peu plus d'informations, je souhaite utiliser l'API d'un conteneur Docker contenant une application Node.js pour accéder à un autre conteneur contenant une application React. </p>
<p>Une idée sur la raison pour laquelle cela ne fonctionne pas ? </p>
Grâce au commentaire de @DavidMaze, j'ai commencé à l'essayer
localhost
而不是 React 应用程序容器的名称,因为显然 React 在浏览器中运行。在我的情况下,每个容器的 URL 看起来像这样:http://containerName:port
,当它们之间进行请求时,我会使用该 URL(因为所有这些容器都在同一个 Docker 网络中),但是每当我想从 React 容器发出请求时,我会使用http//localhost:port
.http://webapp:3000
3000
N'hésitez pas à modifier pour ajouter des informations plus utiles si nécessaire.