Docker PostgreSQL 데이터를 Azure Storage 계정에 저장

Sep 10 2020

Azure Storage 계정에 PostgreSQL 데이터베이스 데이터를 저장하는 방법을 알려주세요. PostgreSQL은 Azure Container Instance에 배포됩니다. Azure Container 인스턴스를 다시 시작하면 모든 데이터가 사라집니다. Dockerfile

timescale / timescaledb : latest-pg12에서

ENV POSTGRES_USER = admin
POSTGRES_DB = dev-timescaledb
POSTGRES_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'

하지만 오류가 발생했습니다

데이터 디렉토리“/ var / lib / postgresql / data / pgdata”에 잘못된 소유권이 있습니다. 서버는 데이터 디렉토리를 소유 한 사용자가 시작해야합니다.

답변

1 CharlesXu Sep 10 2020 at 09:13

컨테이너 인스턴스에 Azure 파일 공유를 탑재 할 때 탑재 지점의 소유권을 변경할 수없는 기존 문제로 인해 발생했습니다. 그리고 현재는 해결할 수 없습니다. SO에서 동일한 문제를 찾을 수 있습니다. 디스크 볼륨 과 함께 AKS를 사용하는 것이 좋습니다. 그러면 데이터 유지에 대한 Postgres 문제가 해결됩니다.