首页 > 解决方案 > 欺骗 Docker 中可用的可用空间或欺骗 Postgres 和 RabbitMQ

问题描述

我正在使用 Google Cloud Run 来托管一些解决方案。当容器启动时,程序可以写入磁盘,并且数据会一直持续到容器停止。但是,从系统的角度来看,容器的所有分区总是报告零可用空间。我从几个方面证实了这一点:

(以上所有内容都是在容器部署到 Cloud Run 后。通过 Cloud Shell 中的 docker 手动运行相同的容器并执行df报告可用空间)。

问题是某些应用程序在启动时会执行磁盘空间检查,并且无法在 Google Cloud Run 中加载。例如,MariaDBdf在其init script中使用,因此注释掉这些行可以将静态但功能性的 MariaDB 实例添加到 Cloud Run 容器。

MariaDB 让它变得简单。现在,我正在尝试对 PostgreSQL 和 RabbitMQ 做同样的事情,但我无法弄清楚如何覆盖他们的磁盘空间检查。以下是我正在考虑的两个选项:

是否有人熟悉 Postgres 或 RabbitMQ 的来源,或者有一个我可以实施的系统范围的解决方案来“欺骗”可用的可用空间?

编辑:这是 RabbitMQ 和 PostgreSQL 给出的错误消息

兔子MQ:

{error,{cannot_log_to_file,"/var/log/rabbitmq/rabbit@localhost.log",{error,einval}}}

Postgres:

Error: /usr/lib/postgresql/10/bin/pg_ctl /usr/lib/postgresql/10/bin/pg_ctl start -D /var/lib/postgresql/10/main -l /var/log/postgresql/postgresql-10-main.log -s -o -c config_file="/etc/postgresql/10/main/postgresql.conf" exited with status 1:

标签: postgresqldockerrabbitmqmariadbgoogle-cloud-run

解决方案


推荐阅读