Как отразить каталог контейнера на хосте?Python

Программы на Python
Ответить
Anonymous
 Как отразить каталог контейнера на хосте?

Сообщение Anonymous »

Все, что мне нужно, — это иметь возможность читать каталог моего контейнера с моего хост-компьютера. То есть символическая ссылка с моего хост-компьютера на каталог контейнера, и мне не требуется ничего, кроме разрешений на чтение.
Я пробовал много разных методов:

Код: Выделить всё

services:
django:
volumes:
- /tmp/docker-django-packages:/usr/local/lib/python3.12/site-packages
Проблема: /tmp/docker-django-packages не создается, если он не существует, но нет ошибки докера, однако никакие пакеты Python не могут быть решены с помощью процесс Python контейнера. Если я вручную создаю /tmp/docker-django-packages на хосте, я все равно получаю ту же ошибку.

Код: Выделить всё

services:
django:
volumes:
- type: bind
source: /tmp/docker-django-packages
target: /usr/local/lib/python3.11/site-packages
bind:
create_host_path: true
Проблема: /tmp/docker-django-packages не создан. Если я сделаю это вручную, он не будет заполнен. На поведение контейнера это никак не влияет.

Код: Выделить всё

services:
django:
volumes:
- docker-django-packages:/usr/local/lib/python3.11/site-packages

volumes:
docker-django-packages:
driver: local
driver_opts:
type: none
o: bind
device: "/tmp/docker-django-packages"
Проблема: каталог хоста не создается, если он не существует, не заполняется, если он уже существует, и контейнер работает нормально

Код: Выделить всё

services:
django:
volumes:
- type: volume
source: docker-django-packages
target: /usr/local/lib/python3.11/site-packages

volumes:
docker-django-packages:
driver: local
driver_opts:
type: none
o: bind
device: "/tmp/docker-django-packages"
Проблема: каталог хоста не создан и не заполнен, контейнер снова работает так, как будто этих строк вообще нет в файле компоновки

Код: Выделить всё

services:
django:
volumes:
- type: bind
source: docker-django-packages
target: /usr/local/lib/python3.11/site-packages

volumes:
docker-django-packages:
driver: local
driver_opts:
type: none
o: bind
device: "/tmp/docker-django-packages"
Проблема: на хост-компьютере ничего не меняется (нет нового каталога, нет нового содержимого, если я создаю это вручную), но процесс Python контейнера больше не может найти. Также, похоже, требуется сделать службу привилегированной для первого запуска. Также, похоже, происходит какое-то кэширование: если я удалю привилегированное разрешение для последующих запусков, контейнер запустится, но я просто получаю ошибки импорта Python.

Итак, что мне на самом деле нужно сделать, чтобы иметь доступ для чтения к папке контейнера с моего хост-компьютера?

Подробнее здесь: https://stackoverflow.com/questions/792 ... n-the-host
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»