#django #docker #docker-compose #file-not-found
Вопрос:
Я использую django в качестве своего фреймворка. Для управления сервером мы используем docker.
Когда я пытаюсь убежать:
docker-compose exec -T web python3 manage.py shell < /data01/ipse/litework/second_level_controller/load.py
чтобы загрузить некоторые данные, я получаю следующую ошибку:
Файл «/code/second_level_controller/DataBaseLoader.py», строка 53, в load_filenames с открытым(os.path.join(self.data_directory, ‘manifest.txt’)) как f:
Файлообменник: [Ошибка 2] Такого файла или каталога нет: ‘/data01/ipse/rawdata/manifest.txt’
Но файл /data01/ipse/rawdata/manifest.text существует, и я могу нормально получить доступ к файлу с помощью:
nano /data01/ipse/rawdata/manifest.txt
Как я могу правильно получить доступ к файлу?
Комментарии:
1. Похоже, что этот файл является своего рода сценарием для приложения управления Django; ссылается ли он на другие файлы внутри сценария с абсолютными путями? Как вы изначально запустили контейнер?
Ответ №1:
Попытка добавить монтирование тома для /data01, чтобы эти файлы находились в одном и том же месте в вашем образе docker.
https://docs.docker.com/storage/volumes/
https://docs.docker.com/compose/compose-file/compose-file-v3/#volume-configuration-reference
Это выглядело бы примерно так:
services:
webserver:
image: python
volumes:
- /data01:/data01
Комментарии:
1. Не совсем мой ответ, но он привел меня в правильном направлении. Спасибо!