将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持久存储数据的问题。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...