将 Docker PostgreSQL 数据存储到 Azure 存储帐户

Storing Docker PostgreSQL data to an Azure Storage Account

告诉我如何将 PostgreSQL 数据库数据存储在 Azure 存储帐户中。 PostgreSQL 部署到 Azure 容器实例。当我重新启动 Azure 容器实例时,所有数据都消失了。 Dockerfile

FROM timescale/timescaledb:latest-pg12

ENV POSTGRES_USER=admin
POSTGRES_DB=dev-timescaledb
POSTGRES_PASSWORD=password
PGDATA=/var/lib/postgresql/data/pgdata

CMD ["postgres", "-c", "max_connections=500"]

创建容器实例和挂载存储账户的命令

az container create --resource-group test-env --name test-env --image test-env.azurecr.io/timescale:latest --registry-username test-env --registry-password "registry-password" --dns-name-label test-env --ports 5432 --cpu 2 --memory 5 --azure-file-volume-account-name testenv --azure-file-volume-account-key 'account-key' --azure-file-volume-share-name 'postgres-data' --azure-file-volume-mount-path '/var/lib/postgresql/data'

但我收到一个错误

data directory “/var/lib/postgresql/data/pgdata” has wrong ownership The server must be started by the user that owns the data directory.

现有的问题导致,当您将 Azure 文件共享挂载到容器实例时,您无法更改挂载点的所有权。而且目前无法解决。您可以在 SO 中找到相同的问题。我建议您将 AKS 与 disk volume 一起使用,它将解决 Postgres 的持久数据问题。