Docker создать том с файловым хостом для переопределения файла-контейнера - PullRequest
0 голосов
/ 09 июля 2020

Я новичок в docker и учусь на онлайн-ресурсах. Обычно у меня есть проект angularjs, который содержит файл conf в папке (src / assets / conf / appConfig. json) и в основном то, что я пытаюсь достичь, - это когда я запускаю свою команду docker (версия - 19.03.8), fileappConfig. json следует скопировать из /var/lib/docker/volumes/volumetest/_data/appConfig.json в src/assets/conf/appConfig.json.

Я создал объем (volumetest), как показано ниже:

введите описание изображения здесь

У меня два вопроса:

Какая команда мне нужна для создания файла appConfig. json в пути / var / lib / docker / volume / volumetest / _data и добавьте в файл следующую строку:

{baseUrl: http://localhost: 8080 /}

После создания вышеупомянутого я добавлю следующую строку в свой файл Docker для angularjs проект:

COPY src/assets/conf/appConfig.json /var/lib/docker/volumes/volumetest/_data

Будет ли файл src / assets / conf / appConfig. json переопределен, когда я выполняю docker команду запуска (docker run -p 8000: 8080 -d - -name cm testApp: 1.0)?

Заранее благодарим за любую помощь

1 Ответ

0 голосов
/ 09 июля 2020

Вы должны полностью игнорировать дерево /var/lib/docker. Вместо этого вы можете использовать Docker bind mount для замены файла во время запуска. Создайте файл на своем хосте; допустим, вы создали альтернативный appConfig.json в текущем каталоге. При запуске контейнера смонтируйте этот файл в:

docker run \
  -v $PWD/appConfig.json:/app/src/assets/conf/appConfig.json \
  ... \
  testApp:1.0

Содержимое /var/lib/docker зависит от установки c и не предназначено для непосредственного редактирования. Кроме того, поскольку контейнеры и изображения имеют изолированные пространства файловой системы, вы не можете писать напрямую в каталог хоста в Dockerfile. Если бы вы использовали именованный том, вы могли бы редактировать файл только внутри контейнера, и вам пришлось бы заменить весь каталог conf содержимым тома.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...