我使用laradock。
我创建了多个项目。一个项目就是一个微服务。
我需要使用 guzzle http 将数据从一个微服务获取到另一个微服务。
在 laradock/nginx/sites 中我配置了所有虚拟主机。
每个项目(微服务)都可以单独正常工作。
但是当我尝试从一个容器获取另一个容器的数据时:
$url = "test.localhost/users";
$client = new \GuzzleHttp\Client();
$request = $client->get($url);
$response = $request->getBody();
return json_decode($response->getContents(), true);
我收到错误:
GuzzleHttp \ 异常 \ ConnectException cURL 错误 7:无法连接到 test.localhost 端口 80:连接超时(请参阅 https://curl.haxx.se/libcurl/c/libcurl-errors.html)
我认为这是 docker 的问题。
我尝试过:
networks:
frontend:
aliases:
- test.localhost
- test2.localhost
backend:
aliases:
- test.localhost
- test2.localhost
但这并没有帮助。
如果您使用
laradock
,请在主机上查看您的网站,然后将其列出在 laradock/docker-compose.yml
上,而不是在 nginx:
部分,而是在 workspace:
中。之后,请通过键入 docker
重新启动 docker-compose down
,然后再次键入 up
。当您尝试创建 authentication
时,这是一个常见问题,我希望这会有所帮助。
networks:
frontend:
aliases:
- mysite.test
- mysite2.test
- mysite3.test
backend:
aliases:
- mysite.test
- mysite2.test
- mysite3.test