目前无法使用docker-compose在单个App Engine实例中具有多个应用程序容器。但是,这似乎是设计使然。
独立扩展应用程序组件如果您想拥有多个应用程序容器,则需要将它们部署为单独的App
Engine服务。每个服务实例仍然只有一个应用程序容器,但是每个服务可能会有多个实例。这将为您提供寻求独立伸缩每个应用程序组件的灵活性。另外,如果容器中的应用程序挂起,则不会影响其他服务,因为它们将驻留在不同的VM中。将每个组件部署为单独的服务的另一个好处是,不必为每个服务使用灵活的环境。对于某些非常小的任务,例如API后端或服务于相对缓慢变化的Web内容,标准环境就足够了,并且在资源水平较低的情况下可能会更便宜。
由于您的评论之一提到获取实例IP,因此我认为您可能会发现服务间通信很有用。我不确定您要使用VM实例IP的原因是什么,但是典型的用例可能是在实例或服务之间进行通信。要在没有实例IP的情况下执行此 *** 作,最好的选择是仅使用适当的URL将HTTP请求从一项服务发送到另一项服务。如果您有一个名为
web 的服务和一个名为 api 的服务,则该 Web
服务可以向
api.mycustomdomain.com托管您的应用程序的位置发出请求,并且 api 服务将收到
X-Appengine-Inbound-Appid带有您的项目ID指定的标头的请求。这可以用作将请求标识为来自您自己的应用程序的方式。使用Docker的多容器应用程序
您提到了许多应用程序示例,包括NGinx,PHP-
FPM,RabbitMQ等。通过使用自定义运行时的 App Engine
,您可以部署任何容器来处理流量,只要它能够响应来自端口8080的请求即可。请记住,该应用程序的目的是提供响应。实例应设计为可快速启动和关闭,以实现水平扩展。它们不应用于存储任何应用程序数据。使用诸如Cloud
SQL,Cloud
Datastore,BigQuery或您在Compute
Engine上运行的自己的Redis实例之类的工具,该变量应保留在App
Engine之外。
我希望这可以澄清一些事情并回答您的问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)