Как получить доступ к файлу снаружи из контейнера docker?

#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. Не совсем мой ответ, но он привел меня в правильном направлении. Спасибо!