I know this question has been asked repeatedly but not fully answered. I have a postgres running in as root user in a container which is using the persistent volume. But it seems like there is permission issue in mounting in the container.
Here are container logs:
`The files belonging to this database system will be owned by user "postgres". This user must also own the server process. The database cluster will be initialized with locale "en_US.utf8". The default database encoding has accordingly been set to "UTF8". The default text search configuration will be set to "english". Data page checksums are disabled. fixing permissions on existing directory /data ... ok initdb: could not create directory "/data/pg_xlog": Permission denied initdb: removing contents of data directory "/data"`
Persistent Volume and Persistent Volume Claim:
kind: PersistentVolume apiVersion: v1 metadata: name: store-persistent-volume labels: app: pgmaster namespace: pustakalaya spec: storageClassName: manual capacity: storage: 5Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain hostPath: path: "/library/pgmaster-data" --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: store-persistent-volume-claim labels: app: postgres namespace: pustakalaya spec: storageClassName: manual accessModes: - ReadWriteMany resources: requests: storage: 3Gi
Pod and Service Description:
spec: selector: matchLabels: app: pgmaster replicas: 1 template: metadata: labels: app: pgmaster spec: # initContainers: # - name: chmod-er # image: busybox:latest # command: ['sh', '-c' ,'/bin/chmod -R 777 /data && /bin/chown -R 999:999 /data'] containers: - name: pgmaster image: becram/olen-elib-db-master:v5.3.0 env: - name: POSTGRES_DB value: pustakalaya - name: POSTGRES_USER value: pustakalaya_user - name: POSTGRES_PASSWORD value: pustakalaya123 - name: PGDATA value: /data - name: POSTGRES_BACKUP_DIR value: /backup ports: - containerPort: 5432 volumeMounts: - mountPath: /data:rw name: pgmaster-volume # restartPolicy: Always volumes: - name: pgmaster-volume persistentVolumeClaim: claimName: store-persistent-volume-claim