Как поднять контейнер с postgresql django на Windows

Сделал Dockerfile и docker-compose.yml, со следующим содержимым:

FROM python:3
ENV PYTHONUNBUFFERED=1
WORKDIR /code/
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

и

version: "3.9"

services:
  db:
    image: postgres
    volumes:
      - ./data/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_HOST_AUTH_METHOD=trust
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    networks:
      - djangonetwork
  web:
    build: D:/djangoProject/phonerep/Docker/
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
       - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
    links:
      - db:db
    networks:
      - djangonetwork
networks:
      djangonetwork:
          driver: bridge

Образы собираются, но при запуске контейнера, контейнер с postgresql выдает вот такую ошибку при старте:

db_1 | running bootstrap script ... 2021-04-21 14:26:09.075 UTC [85] FATAL: data directory "/var/lib/postgresql/data" has invalid permissions

db_1 | 2021-04-21 14:26:09.075 UTC [85] DETAIL: Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)

Уже сломал голову как это исправить. Я понимаю, что проблема в операционке Windows с ее правами на файлы и папки. Подскажите как это поправить.


Ответы (2 шт):

Автор решения: ASTyurin

Попробуйте указать полный путь до volume'a pgdata:

    volumes:
      - D:/path/to/folder/data/db:/var/lib/postgresql/data

Возможно необходимо заранее создать эту директорию.

→ Ссылка
Автор решения: Алексей Супрун

Для меня работает только так под Windows

docker volume create db_volume

services:
...
  timescale:
    image: timescale/timescaledb:latest-pg12 
    volumes:
    - db_volume:/var/lib/postgresql/data
    ...
  
volumes:
  db_volume:
    external: true
→ Ссылка