Как я могу использовать dockerfile для копирования файлов с моего хоста на образ во время создания и сделать их доступными для хост-машины при создании контейнера? Я потерян между 1) VOLUME = [..] в Dockerfile 2) - том в команде запуска 3) docker том создания
Я попытался создать файл Docker для копирования файлов в образ. хотя, если я запускаю контейнер с параметром -v, цель в контейнере, похоже, очищается ?? пример:
FROM node:latest
WORKDIR /usr/src/myapp
COPY package*.json ./
RUN npm install
COPY index.js /usr/src/myapp/index.js
EXPOSE 8080
CMD [ "node", "/usr/src/myapp/index.js" ]
Прекрасно работает без тома
docker run -p 8080:8080 --name Test test:latest
Однако с томом кажется, что целевой каталог в контейнере очищен (ошибка: не удается найти модуль '/ usr / src / myapp / index. js ')
docker run -p 8080:8080 -v /mynasvolume1/test:/usr/src/myapp --name Test test:latest
Я знаю, что моя альтернатива - создать именованный том на хосте и включить его как VOLUME в Dockerfile. Это не мое предпочтение, поскольку оно не позволяет мне выбрать расположение тома на моем хост-компьютере (Synology NAS не дает мне решения изменить местоположение по умолчанию с / volume1 / @ docker / volume на местоположение, которым я могу поделиться или смонтировать)