@ludie
Чтобы запустить PM2 в Docker-контейнере, вам необходимо выполнить следующие шаги:
- Создайте файл Dockerfile в корневом каталоге вашего приложения с указанием базового образа, например, node:latest.
- Установите зависимости вашего приложения внутри Docker-контейнера с помощью инструкции RUN npm install.
- Добавьте файл конфигурации PM2 (ecosystem.config.js) внутрь контейнера с помощью инструкции COPY. Файл ecosystem.config.js содержит настройки для PM2, такие как запуск приложения и настройки логирования.
- Убедитесь, что ваше приложение запускается в режиме кластера, чтобы использовать все ядра процессора на сервере. Это можно настроить в файле ecosystem.config.js.
- В файле Dockerfile добавьте инструкцию CMD ["pm2-runtime", "start", "ecosystem.config.js"], чтобы запустить приложение с помощью PM2 при запуске контейнера.
- Соберите Docker-образ, используя команду docker build -t <имя_образа> . в терминале из корневого каталога вашего приложения.
- Запустите контейнер, используя команду docker run -p <внешний_порт>:<внутренний_порт> <имя_образа>.
Вот пример Dockerfile
для запуска PM2 в Docker-контейнере:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
FROM node:latest
WORKDIR /app
COPY package.json .
COPY package-lock.json .
RUN npm install --production
COPY . .
COPY ecosystem.config.js .
CMD ["pm2-runtime", "start", "ecosystem.config.js"]
|
Замените <имя_образа>
, <внешний_порт>
и <внутренний_порт>
на свои значения.