无法让Docker容器相互通信

时间:2018-02-01 23:48:55

标签: node.js reactjs docker docker-compose unirest

我有两个Docker容器,一个运行React应用程序(使用create-react-app构建),另一个运行Node app API。我有一个docker-compose文件设置,根据documentation,我应该能够使用服务名称在容器之间进行通信。

但是,当我尝试从React应用程序向我的API的/login端点发送请求时,我收到了net::ERR_NAME_NOT_RESOLVED错误。我正在使用Unirest发送请求。

我已经做过一堆在线挖掘,并且遇到了一些描述类似问题的事情,但仍然无法找到解决方案。当我在我的React容器中运行cat /etc/resolve.conf(请参阅this问题)时,带有我的API的容器没有出现,但Docker对我来说仍然是一个新手,所以我不确定这是否属于问题。我也尝试在我的撰写文件中使用链接和用户定义的网络,但无济于事。

我已经包含了docker-compose.yml文件的要点以及我的请求的代码段。非常感谢任何帮助!

docker-compose.yml
Unirest request to /logi n的

1 个答案:

答案 0 :(得分:0)

正如在原始帖子的评论中所讨论的,这是一个DNS问题。配置DNS对于这个项目的用例有点牵扯,所以我通过使用环境变量设置用于根据我是否正在运行来调用我的API容器的URL来解决我的问题开发或生产环境:

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

我在本地运行时将REACT_APP_URL_ROOT设置为我的本地主机地址,并在构建和部署React应用程序时将nginx容器配置为代理/app