Для развертывания Node.js и npm в Docker, вам понадобится создать Dockerfile и настроить контейнер. Ниже приведены инструкции по каждому шагу:
- Создайте файл с именем Dockerfile в корневом каталоге вашего проекта.
- Определите базовый образ, который будет использоваться для вашего контейнера. Обычно вы можете использовать официальный образ Node.js от Docker Hub. Например, вы можете использовать образ Node.js версии 14.x с операционной системой Linux alpine:
FROM node:14-alpine
- Убедитесь, что ваш рабочий каталог внутри контейнера устанавливается в правильное значение. Этот каталог будет служить базовым для файлов вашего приложения. Например, создайте каталог /usr/src/app:
WORKDIR /usr/src/app
- Скопируйте package.json и package-lock.json (или yarn.lock) внутрь контейнера. Затем выполните команду npm install (или yarn install), чтобы установить зависимости для вашего проекта. Это может быть сделано в одной строке:
COPY package*.json ./ RUN npm install
- Скопируйте все остальные файлы вашего приложения внутрь контейнера. Используйте точку (.) после команды COPY, чтобы скопировать все файлы из текущего рабочего каталога (или указанный путь) в каталог контейнера:
COPY . .
- Изложите порт, который будет служить точкой доступа к вашему приложению. Например, если ваше приложение слушает порт 3000, добавьте следующую инструкцию:
EXPOSE 3000
- Наконец, укажите команду, которая будет запускаться при старте контейнера. В случае Node.js это обычно команда запуска вашего приложения, например, чтобы запустить файл index.js:
CMD [ "node", "index.js" ]
- Сохраните и закройте файл Dockerfile.
- Откройте терминал и перейдите в каталог, содержащий файл Dockerfile.
- Запустите команду
docker build
, чтобы создать образ контейнера на основе Dockerfile. Используйте флаг -t для указания тега образа. Например:
docker build -t my-node-app .
- После завершения сборки контейнера можно запустить его с помощью команды
docker run
. Укажите имя образа, который вы хотите запустить, и, при необходимости, произведите привязку порта:
docker run -p 3000:3000 my-node-app
Теперь ваше приложение Node.js должно быть развернуто внутри Docker-контейнера и будет доступно на порту 3000 вашей машины. Вы можете протестировать его, открыв браузер и перейдя по адресу http://localhost:3000.