Запуск докера и уточнение тома

Ниже мой файл докеров, я делаю копию файла js в команде копирования и после этого устанавливаю рабочий каталог, а затем - громкость и команду запуска. 1) Я понимаю node_modules (который создается из-за запуска npm install) IS стирается, когда контейнер впервые инициализируется из-за создания тома в том же месте Мой вопрос, почему мой app.js, который я скопировал на шаге 3, не стирается, поскольку он также находится на том же пути, что и том?

FROM node:latest

ENV NODE_ENV=production
ENV PORT=3000

COPY . /app
WORKDIR /app
VOLUME ["/app"]


RUN npm install

EXPOSE $PORT

ENTRYPOINT ["node","app.js"]

может быть связано: stackoverflow.com/questions/35466045/…

Hemerson Varela 07.05.2018 23:03

Два замечания: (i) относительно томов использование команды VOLUME в Dockerfile на самом деле является плохой практикой, см., Например, boxboat.com/2017/01/23/volumes-and-dockerfiles-dont-mix; вместо этого лучше использовать -v или --mount флаги запуска докера (или соответствующие параметры в файле docker-compose.yml); (ii) простое копирование всех файлов за один раз (COPY . /app) мешает работе механизма кеширования Docker; вы можете взглянуть на это руководство по докеризации приложений Node.js

ErikMD 07.05.2018 23:55
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
2
41
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вопрос: Почему мой app.js (который я скопировал на шаге 3) не стирается, в то время как node_modules.

А: Как описано в документации докера в разделе томов.

Цитировать:

Changing the volume from within the Dockerfile:

If any build stepschange the data within the volume after it has been declared, thosechanges will be discarded.

Справка:https://docs.docker.com/engine/reference/builder/#notes-about-specifying-volumes

Идеально! Я получил ответ

sudharsan tk 08.05.2018 04:56

Другие вопросы по теме