Как развернуть nodejs+npm в Docker?

Для развертывания Node.js и npm в Docker, вам понадобится создать Dockerfile и настроить контейнер. Ниже приведены инструкции по каждому шагу:

1. Создайте файл с именем Dockerfile в корневом каталоге вашего проекта.

2. Определите базовый образ, который будет использоваться для вашего контейнера. Обычно вы можете использовать официальный образ Node.js от Docker Hub. Например, вы можете использовать образ Node.js версии 14.x с операционной системой Linux alpine:

FROM node:14-alpine

3. Убедитесь, что ваш рабочий каталог внутри контейнера устанавливается в правильное значение. Этот каталог будет служить базовым для файлов вашего приложения. Например, создайте каталог /usr/src/app:

WORKDIR /usr/src/app

4. Скопируйте package.json и package-lock.json (или yarn.lock) внутрь контейнера. Затем выполните команду npm install (или yarn install), чтобы установить зависимости для вашего проекта. Это может быть сделано в одной строке:

COPY package*.json ./
RUN npm install

5. Скопируйте все остальные файлы вашего приложения внутрь контейнера. Используйте точку (.) после команды COPY, чтобы скопировать все файлы из текущего рабочего каталога (или указанный путь) в каталог контейнера:

COPY . .

6. Изложите порт, который будет служить точкой доступа к вашему приложению. Например, если ваше приложение слушает порт 3000, добавьте следующую инструкцию:

EXPOSE 3000

7. Наконец, укажите команду, которая будет запускаться при старте контейнера. В случае Node.js это обычно команда запуска вашего приложения, например, чтобы запустить файл index.js:

CMD [ "node", "index.js" ]

8. Сохраните и закройте файл Dockerfile.

9. Откройте терминал и перейдите в каталог, содержащий файл Dockerfile.

10. Запустите команду docker build, чтобы создать образ контейнера на основе Dockerfile. Используйте флаг -t для указания тега образа. Например:

docker build -t my-node-app .

11. После завершения сборки контейнера можно запустить его с помощью команды docker run. Укажите имя образа, который вы хотите запустить, и, при необходимости, произведите привязку порта:

docker run -p 3000:3000 my-node-app

Теперь ваше приложение Node.js должно быть развернуто внутри Docker-контейнера и будет доступно на порту 3000 вашей машины. Вы можете протестировать его, открыв браузер и перейдя по адресу http://localhost:3000.