我在 docker 容器中有一个应用程序/服务系统,当我使用 docker-compose 启动它们时,它们会使用桥接网络相互通信。
worker 启动并向经理注册。经理分配 worker 的工作要做。为此, worker 需要知道经理在哪里,而经理需要知道 worker 在哪里。
我想将它们全部部署到 Google Cloud Run。
目前,通过 docker-compose 在 docker 中,他们使用容器名称相互交谈。例如worker可能调用:http://manager:5000/register?name=worker1&port=5000
在启动时注册,然后manager可以调用http://worker1:5000
发送工作。这一切都归功于它们连接到同一个桥接网络。
这如何与 Google Cloud Run 配合使用?据我所知,当您创建与容器链接的服务时,您将获得一个永久 URL,以便在您的应用启动后与它进行通信。容器中的应用不知道 URL 是什么。
我可以使用服务名称以与 docker 桥接网络相同的方式相互通信吗?
最佳答案
Cloud Run 目前不支持您项目中其他服务的基于主机名的服务发现。
目前,最好的办法是使用环境变量或类似的东西配置您的应用所依赖的服务 URL。
关于docker - 谷歌云运行容器网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57689876/