Хочу подружить докер и NodeJs. Основная цель - сдлеать контейнер, при запуске которого будут подтягиватся все зависимости NodeJs. Так же должна быть возможность вести разработку с использованием этого контейнера без необходимости устанавливать nodejs на локальной машине.
Если монтировать всю директорию app (вместе с packages.json), нет возможности запускать npm install автоматичесски из Dockerfile (так как при выполнении команды RUN npm install в Dockerfile, packages.json файла еще не будет, так как он монтируется в docker-compose.yml позже). Придется вручную заходить в контейнер и делать npm install.
Во всех туториалах предлагается использовать COPY внутри Dockerfile (
https://nodejs.org/en/docs/guides/nodejs-docker-we...
СOPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
Приложение подымается, зависимости подтягиваются, но мы не можем редактировать код с локальной машини, так как он был копирован в докер контейнер вместо монтирования. Нет возможности добавлять npm модули внутри контейнера и сохранять их в packages.json. Тоесть нам придется в таком случае установить nodejs локально и при каждом изменении кода делать composer-compose build.
Может я не правильно понял концепцию докера, и он не предназначен для разработки? Может он предназначен только для деплоя?
Мне кажется аналогичная проблемма будет с composer PHP пакетами.
Если посоветуете, или кините пример вашего решения, или ссылку на проект где это реализовано, буду очень благодарен.
Я хочу иметь возможность в дальнейшем взять докер image и одним кликом поднять его на любом сервер. Без необходимости настраивать внешнее окружение.