API-Aufrufe über Docker-Container hinweg
P粉764003519
P粉764003519 2023-08-29 19:43:11
0
1
533
<p>Ich versuche, die bereitgestellte API von einem Docker-Container (sagen wir <code>container_A</code>) zu verwenden, um auf einen anderen Container (<code>container_B</code>) zuzugreifen. Diese beiden Container befinden sich im selben Docker-Netzwerk. Bevor ich Docker hinzufügte, würde ich natürlich API-Aufrufe an <code>http://localhost:{app_port}/{endpoint}</code> durchführen und jetzt, da ich die Anwendung Dockerisiert habe, wird jeder Dienst in einem ausgeführt Docker-Container, ich weiß aus der Lektüre anderer Fragen und Websites, dass Sie den Alias ​​des Containers verwenden müssen, wenn er sich im selben Netzwerk befindet, oder den Dienstnamen, wenn Sie <code>docker compose</code> verwenden. Zum Beispiel <code> ;http://container_A:8000/books</code>. Ich habe das getan, aber es funktioniert nicht. Ich habe CORS in allen Diensten konfiguriert und auch versucht, über den <em>REST-Client</em> (eine Postman-ähnliche VSCode-Erweiterung) auf den Endpunkt zuzugreifen, um zu sehen, ob das funktioniert. Ich habe auch Port Mapping/Port Exposure durchgeführt. </p> <p>Nur um ein wenig mehr Hintergrundinformationen bereitzustellen: Ich möchte die API eines Docker-Containers verwenden, der eine Node.js-Anwendung enthält, um auf einen anderen Container zuzugreifen, der eine React-Anwendung enthält. </p> <p>Irgendwelche Ideen, warum das nicht funktioniert? </p>
P粉764003519
P粉764003519

Antworte allen(1)
P粉956441054

感谢 @DavidMaze 的评论,我开始尝试使用 localhost 而不是 React 应用程序容器的名称,因为显然 React 在浏览器中运行。在我的情况下,每个容器的 URL 看起来像这样:http://containerName:port,当它们之间进行请求时,我会使用该 URL(因为所有这些容器都在同一个 Docker 网络中),但是每当我想从 React 容器发出请求时,我会使用 http//localhost:port

  • containerName 是您应用程序的容器名称。例如:http://webapp:3000
  • port 是暴露的端口。例如:3000

如有需要,请随意编辑以添加更多有用的信息。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage