将 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 的持久数据问题。
告诉我如何将 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/pgdataCMD ["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 的持久数据问题。