1。总结问题
Google Cloud Run宣传它是“无状态容器”。有没有办法运行任何东西,将状态保存在某个地方?
我想在一个容器中运行Postgres,但只能按需启动它,在提出请求时启动PG容器。
使用相同的问题的容器将使用REST API(Web服务器)连接到PG容器。
因此,当Web应用程序(托管在Firebase上)向REST API(容器)发出请求时,它将启动,然后从REST api查询的PG实例将启动(或者可以简单地放置将两个DB和REST API都放在一个容器中。
对于开发人员实例,我不希望24x7x365几乎不做任何事情,只是希望在开发期间会加速工作,但是我有很多这样的人,是唯一的OPS家伙,想为开发人员实现自动化,包括我自己,并尽量减少帐单。
这里最好的方法将不胜感激。
2。提供背景,包括您已经尝试过的内容
我已经创建了Docker容器并部署到Cloud Run
3。显示一些代码
yum install buildah podman -y
4。描述预期和实际结果,包括任何错误消息
我正在寻找一种解决方案,以最大程度减少开发环境的费用,该环境将包括托管和数据库/ REST API(数据库必须是Postgres)。
我正在寻找可维护数据库状态的有状态云运行。
答案 0 :(得分:2)
Cloud Run不适合托管数据库。分配给Cloud Run的传入请求的服务器实例可以来来去去,并且并非所有请求都将到达同一实例,这意味着并非所有客户端都可以看到相同的数据。这就是“无状态容器”的问题。
如果要使用Cloud Run提供数据库访问,最好将其作为其他一些由云托管的数据库服务的代理。您可能会在其上托管一个REST API终结点,该终结点可以访问某些其他数据库服务(例如:Cloud Firestore,Cloud SQL)。但是,将数据库本身托管在docker映像中没有任何意义,因为这些服务器实例可能会意外地来来去去,从而破坏每个实例中存储的所有数据库状态。