#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 для пользователя вашего контейнера. Вы можете попробовать создать файл меньшего размера, протестировав каждую службу.