Нет, не настолько, насколько я знаю. Так как Docker томовые монтирования работают так же, как обычные unix монтирования, вы не увидите файл в вашем Docker контейнере. Обычно вы разделяете те каталоги, которые будут меняться в течение срока службы вашего контейнера (например, ваш исходный код во время локальной разработки), и те файлы, которые не изменяются (например, node_modules при работе с JavaScript.
. две ваши идеи, которые приближаются к вашему желаемому решению и могут работать для вас.
Монтирование в другой каталог
Вы можете разделить каталог контейнера A
на AA
и AB
. AA
содержит файл, который был добавлен во время сборки, в то время как AB
содержит файлы, которые вы монтируете в своем контейнере. Затем вы можете ссылаться на смонтированный файл из файла в вашем контейнере, используя относительные пути, такие как ../AB/some_file
.
# /A/AA/file1.js
require '../AB/file0';
In host:
hostA:
- file0
In docker container:
A:
AA:
- file1
AB: # mounted
- file0
Монтирование одного файла
В качестве другой альтернативы, вы можете монтировать один файл. Это правильное решение, если вам нужно монтировать только пару файлов (например, конфигурации). ) в ваш контейнер.
Docker:
-v "PWD"/hostA/file0:/A/file0
docker -составьте:
somes_service:
volumes:
- hostA/file0:/A/file0
Тем не менее, фи Файл из вашего контейнера file1
не будет доступен на вашем хост-компьютере.
В этом случае вы также можете установить подключенный файл только для чтения.
hostA/file0:/A/file0:ro
Надеюсь, это поможет.