Docker container shuts down giving 'data directory has wrong ownership' error when executed in windows 10 Docker container shuts down giving 'data directory has wrong ownership' error when executed in windows 10 postgresql postgresql

Docker container shuts down giving 'data directory has wrong ownership' error when executed in windows 10


This is a documented problem with the Postgres Docker image on Windows [1][2][3][4]. Currently, there doesn't appear to be a way to correctly mount Windows directories as volumes. You could instead use a persistent Docker volume, for example:

  db:    image: postgres    environment:      - POSTGRES_USER=attendize      - POSTGRES_PASSWORD=attendize      - POSTGRES_DB=attendize    ports:      - "5433:5432"    volumes:      - pgdata:/var/lib/postgresql/data    networks:    - attendizenetvolumes:  pgdata:

Other things that didn't work:

    environment:      - PGDATA=/var/lib/postgresql/data/mnt    volumes:      - ./pgdata:/var/lib/postgresql/data
  • Use a Bind Mount (docker-compose 3.2)
    volumes:      - type: bind        source: ./pgdata        target: /var/lib/postgresql/data
  • Running as POSTGRES_USER=root

More Information:

GitHub

Docker Forums


Please refer reinierkors' answer from here. The answer is as follows copied as is from the link here for reader's convenience and works for me

I solved this by mapping my local volume one directory below the one Postgres needs:

version: '3'services:  postgres:    image: postgres    restart: on-failure    environment:      - POSTGRES_USER=postgres      - POSTGRES_PASSWORD=password      - PGDATA=/var/lib/postgresql/data/pgdata      - POSTGRES_DB=postgres    volumes:      - ./postgres_data:/var/lib/postgresql    ports:      - 5432:5432


Even i had the problem i had to copy the data dir at regular intervals.

 docker cp <container-name>:/var/lib/postgresql/data C:/docker/volumes/postgres