簡體   English   中英

無法讓 Docker 容器相互通信

[英]Unable to have Docker containers communicate with each other

我有兩個 Docker 容器,一個運行 React 應用程序(使用 create-react-app 構建),另一個運行 Node 應用程序 API。 我設置了一個 docker-compose 文件,根據文檔,我應該能夠使用服務的名稱在容器之間進行通信。

但是,當我嘗試從 React 應用程序向 API 的/login端點發送請求時,我收到了net::ERR_NAME_NOT_RESOLVED錯誤。 我正在使用 Unirest 發送請求。

我已經在網上進行了大量挖掘,並遇到了一些描述類似問題的事情,但仍然無法找到解決方案。 當我在 React 容器中運行cat /etc/resolve.conf (請參閱問題)時,帶有我的 API 的容器沒有出現,但 Docker 對我來說仍然是相當新的,所以我不確定這是否是問題的一部分. 我還嘗試在我的撰寫文件中使用鏈接和用戶定義的網絡,但無濟於事。

我已經包含了我docker-compose.yml文件docker-compose.yml以及我的請求的代碼片段。 非常感謝任何幫助!

docker-compose.yml
對 /login 的 Unirest 請求

正如原始帖子的評論中所討論的,這是一個 DNS 問題。 這個項目的用例有點涉及配置 DNS,所以我通過使用環境變量來設置用於調用我的 API 容器的 URL 解決了我的問題,該 URL 基於我是否正在運行開發或生產環境:

(process.env.REACT_APP_URL_ROOT || '/app')

在本地運行時,我將REACT_APP_URL_ROOT設置為我的本地主機地址,並在構建和部署 React 應用/app時將 nginx 容器配置為代理到/app app。

您是否對此有逐步的指導? 我現在被卡住了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM