Docker - медиа-том не сохраняет данные
У меня есть проект Django, в котором есть media
том, содержащий все загружаемые файлы. Некоторые из этих файлов являются экземплярами модели Script
. Однако, должно быть что-то в моем определении/использовании тома, так как я получаю No such file or directory: 'path_of_the_file'
ошибку при попытке доступа к моим файлам.
Я пробовал разные подходы и обнаружил, что при создании экземпляра Script
через панель администратора файл был доступен до следующего перезапуска контейнера.
Я пытался проверить, что находится внутри моего тома, используя этот ответ , но я получаю The specified path does not exist
при попытке cd
в точку монтирования. Вот результат проверки :
C:\Users\stephane.bernardelli\Documents\TestApp\src>docker volume inspect testapp_media
[
{
"CreatedAt": "2022-07-21T14:34:17Z",
"Driver": "local",
"Labels": {
"com.docker.compose.project": "testapp",
"com.docker.compose.version": "2.6.1",
"com.docker.compose.volume": "media"
},
"Mountpoint": "/var/lib/docker/volumes/testapp_media/_data",
"Name": "testapp_media",
"Options": null,
"Scope": "local"
}
]
А вот мой docker-compose.yml
:
version: '3.8'
services:
rabbitmq3:
image: rabbitmq:3-alpine
ports:
- 5672:5672
networks:
- main
postgres:
container_name: postgres
hostname: postgres
image: postgres:latest
env_file:
- env
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=Scripts Application
networks:
- main
ports:
- "5432:5432"
restart: on-failure
volumes:
- postgresql-data:/var/lib/postgresql/data
django_gunicorn:
volumes:
- static:/static
- media:/media
env_file:
- env
build:
context: .
ports:
- "8000:8000"
command: sh -c "python manage.py migrate && python manage.py collectstatic --no-input && gunicorn main.wsgi:application --bind 0.0.0.0:8000"
depends_on:
- postgres
networks:
- main
nginx:
build: ./nginx
volumes:
- static:/static
- media:/media
ports:
- "80:80"
depends_on:
- django_gunicorn
networks:
- main
celery:
restart: always
build:
context: .
command: celery -A main worker -P eventlet -c 100 -l INFO
env_file:
- env
depends_on:
- rabbitmq3
- django_gunicorn
- postgres
networks:
- main
networks:
main:
volumes:
postgresql-data:
static:
media:
Я совершенно не понимаю, что я делаю неправильно, поэтому буду рад, если кто-нибудь сможет меня направить, заранее спасибо!