是否可以在同一个 Cloud Run 服务中部署两个不同的 docker 镜像

时间:2021-02-25 10:18:26

标签: docker deployment docker-compose google-cloud-run

我构建了一个应用程序,它使用两个自制的微服务,每个微服务都有自己的 Dockerfile。 当我在本地构建它时,出于实际原因,我使用 docker-compose。

目前,当我部署到 Cloud Run 时,我使用类似的命令

  • docker tag xxx
  • docker push xxx
  • 然后我选择要在 Cloud run 上部署的映像

据我所知,docker-compose build 只是构建两个映像(每个 Dockerfile 一个)并将它们放置在同一个网络中,这允许在这两个 API 之间建立一些实际连接。

是否可以通过 Cloud Run 执行类似的操作,而无需将每个映像部署到不同的服务上?

PS:出于商业原因,我不能直接在 Cloud Source Repositories 上托管我的代码,它必须在 Azure 上

1 个答案:

答案 0 :(得分:1)

无法将 2 个不同的 Docker 映像部署到 Cloud Run。

Cloud Run 的工作方式如下:

  1. 您构建一个容器映像并上传到 Google Container Registry

  2. 使用容器映像部署到 Cloud Run。

  3. 您的服务会根据您的传入请求自动扩展到特定数量的容器实例。每个容器都会运行容器镜像。

Summary = Cloud Run 获取用户的容器并在 Google 基础架构上执行它,并处理该容器的实例化(扩展)。

请注意,Cloud Run 旨在运行网站REST API 后端后台管理等,并且确实如此不支持微服务架构(不同的服务器在不同的容器中运行)。

对于您的场景,您可以在 Cloud Run 中部署多个服务或使用其他 Google Products,例如 Cloud SQL、Datastore、Spanner 或 BigTable。

注意:您可以在同一个服务中部署 2 个容器,但是您可以部署一个包含多个进程的容器,如本 article written by a Googler

中所述