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

问题描述

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

FROM timescale / timescaledb:latest-pg12

ENV POSTGRES_USER = admin
POSTGRES_DB = dev-timescaledb
POSTGRES_PASSWORD =密码
PGD​​ATA = / var / lib / postgresql / data / pgdata

CMD [“ postgres”,“-c”,“ max_connections = 500”]

用于创建容器实例和安装存储帐户的命令

az容器create --resource-group test-env --name test-env --image test-env.azurecr.io/timescale:latest --registry-username test-env --registry-password“注册密码” --dns-name-label test-env --ports 5432 --cpu 2-内存5 --azure-file-volume-account-name testenv --azure-file-交易帐号键 “帐户密钥” --azure-file-volume-share-name'postgres-data'--azure-file-volume-mount-path'/ var / lib / postgresql / data'

但我遇到了错误

数据目录“ / var / lib / postgresql / data / pgdata”具有错误的所有权 服务器必须由拥有数据目录的用户启动。

解决方法

这是由现有问题引起的,当您将Azure文件共享安装到容器实例时,无法更改安装点的所有权。目前尚无法解决。您可以在SO中找到相同的问题。我建议您将AKS与disk volume一起使用,它将解决Postgres持久存储数据的问题。