docker-compose не сохраняет данные на томах

#docker #docker-compose #docker-volume

Вопрос:

Ниже приведен мой файл docker-compose, в котором я указал, что данные postgres сохраняются в моей папке на вызываемом хосте volumes/db_data/ . Но эта папка остается пустой. Вместо этого данные, по-видимому, сохраняются в папке по умолчанию var/lib/docker/volumes . Кроме того, папка user_models не сохраняется локально volumes/user_models . Это api_server.log также не сохраняется. Поэтому я предполагаю, что в моем понимании объемов докеров в целом что-то не так.

 version: "3.7"
services:
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: xxxxxxxxxxx
      POSTGRES_USER: postgres
      POSTGRES_DB: user-db
    volumes:
      - ./volumes/db_data:/var/lib/postgresql/data
    ports:
      - 5432:5432

  api-server:
    image: api-server
    volumes:
      - ./volumes/user_models:/classification/user_models
    depends_on:
      - db
    ports:
      - 1337:1337

  model-trainer:
    image: webapp-trainer
    volumes:
      - ./volumes/user_models:/user_models
      - ./volumes/api_server.log:/api_server.log
    depends_on:
      - db

  react-client:
    image: webapp-client
    depends_on:
      - api-server
    ports:
      - 3000:3000
 
 

Все остальное работает нормально, просто данные user_models не сохраняются, а данные postgres сохраняются не в том месте. Что я делаю не так?

Изменить: docker-compose up печатает это в начале:

ПРЕДУПРЕЖДЕНИЕ: Служба «db» использует том «/var/lib/postgresql/данные» из предыдущего контейнера. Отображение хоста «/главная страница/тео/Документы/Программирование/cbi-webapp/создание/тома/db_data»

однако db_data пуста

Комментарии:

1. Здравствуйте, не могли бы вы попробовать заменить ./ на ${PWD}/ ?

2. @EtienneDijon да, это дает мне: WARNING: The PWD variable is not set. Defaulting to a blank string. Recreating compose_db_1 ... WARNING: Service "db" is using volume "/var/lib/postgresql/data" from the previous container. Host mapping "/volumes/db_data" has no effect. Remove the existingRecreating compose_db_1 ... done

3. Не могли бы вы попробовать : docker-compose down , затем изменить разрешения вашего volumes каталога, для каждого экземпляра изображения добавьте достаточно разрешений, чтобы он был rwx для пользователя вашего контейнера. Вы можете попробовать создать файл меньшего размера, протестировав каждую службу.