我构建了一个应用程序,它使用两个自制的微服务,每个微服务都有自己的 Dockerfile。 当我在本地构建它时,出于实际原因,我使用 docker-compose。
目前,当我部署到 Cloud Run 时,我使用类似的命令
docker tag xxx
docker push xxx
据我所知,docker-compose build
只是构建两个映像(每个 Dockerfile 一个)并将它们放置在同一个网络中,这允许在这两个 API 之间建立一些实际连接。
是否可以通过 Cloud Run 执行类似的操作,而无需将每个映像部署到不同的服务上?
PS:出于商业原因,我不能直接在 Cloud Source Repositories 上托管我的代码,它必须在 Azure 上
答案 0 :(得分:1)
无法将 2 个不同的 Docker 映像部署到 Cloud Run。
Cloud Run 的工作方式如下:
您构建一个容器映像并上传到 Google Container Registry
使用容器映像部署到 Cloud Run。
您的服务会根据您的传入请求自动扩展到特定数量的容器实例。每个容器都会运行容器镜像。
Summary = Cloud Run 获取用户的容器并在 Google 基础架构上执行它,并处理该容器的实例化(扩展)。
请注意,Cloud Run 旨在运行网站、REST API 后端、后台管理等,并且确实如此不支持微服务架构(不同的服务器在不同的容器中运行)。
对于您的场景,您可以在 Cloud Run 中部署多个服务或使用其他 Google Products,例如 Cloud SQL、Datastore、Spanner 或 BigTable。
注意:您可以在同一个服务中部署 2 个容器,但是您可以部署一个包含多个进程的容器,如本 article written by a Googler
中所述