Докер: файлы с тома не обновлены в целевой - PullRequest
0 голосов
/ 19 октября 2018

Я новичок в Docker, и я создал образ с этим Dockerfile:

FROM node:8.12.0
LABEL version="1.0"
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["node", "index.js"]

Я запускаю образ, и он работает.Но если я запускаю каталог хоста отображения изображений с WORKDIR, когда я обновляю index.js в каталоге хоста, это обновление не распространяется на WORKDIR.

Я запускаю образ с помощью этой команды:

docker run --name basketmetrics -v /home/josecarlos/Workspace/nodejs/basketmetrics2:/usr/src/app -p 8080:8080 -d basketmetrics2/node-app:1.0

Это мой каталог хоста / home / josecarlos / Рабочая область / nodejs / basketmetrics2

enter image description here

И это целевой каталог в контейнере / usr / src/приложение.Если я осматриваю контейнер, я вижу, что каталог хоста сопоставлен с WORKDIR

enter image description here

Что я делаю неправильно?

Обновление I:

Я остановил свой контейнер и изменил файл index.js в моей директории хоста.Если я снова запускаю изображение, я вижу, что контент обновляется !!!

Почему мой контент не обновляется на лету?

1 Ответ

0 голосов
/ 19 октября 2018

Похоже, известная проблема. Ссылка

Если вы используете какой-либо редактор, например vim, при сохранении файла он не сохраняет файл напрямую, а создает новый файл и копирует его на место.Это нарушает привязку, основанную на inode.Поскольку сохранение файла эффективно изменяет индекс, изменения не будут распространяться в контейнер.Когда контейнер перезапущен, новый индекс.Если вы отредактируете файл на месте, вы увидите, что изменения распространяются.

Это известное ограничение монтирования файлов, которое невозможно исправить.

ДалееВ комментариях вы можете найти обходные пути для разных редакторов.Проверьте, работает ли что-либо

...