suchen

Heim  >  Fragen und Antworten  >  Hauptteil

API-Aufrufe über Docker-Container hinweg

<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粉764003519P粉764003519550 Tage vor631

Antworte allen(1)Ich werde antworten

  • P粉956441054

    P粉9564410542023-08-30 13:02:20

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

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

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

    Antwort
    0
  • StornierenAntwort