Как запустить 2 node процесса в одном контейнере docker?

Для запуска двух node процессов в одном контейнере Docker необходимо внести некоторые изменения в стандартный файл запуска контейнера.

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

FROM node:latest
WORKDIR /app
COPY . /app
RUN npm install
EXPOSE 3000
CMD ["npm", "start"]

2. Сохраните это в файле с именем Dockerfile в папке вашего проекта.

3. В командной строке перейдите в папку с вашим проектом и выполните команду docker build -t <image_name> ., чтобы создать образ контейнера на основе Dockerfile. Укажите <image_name> как имя вашего образа.

4. После успешного создания образа контейнера запустите команду docker run -d -p 3000:3000 <image_name>, чтобы запустить контейнер из созданного образа. Это привяжет порт 3000 вашего хоста к порту 3000 контейнера.

5. Вам также необходимо настроить второй процесс Node.js внутри контейнера. Создайте файл в папке вашего проекта с именем docker-compose.yaml. Вот пример содержимого docker-compose.yaml для запуска двух процессов Node.js в контейнере Docker:

version: '3'
services:
  app1:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 3000:3000
    command: npm start
  app2:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 4000:4000
    command: npm start

6. После создания файла docker-compose.yaml выполните команду docker-compose up -d, чтобы запустить контейнер с двумя процессами Node.js.

Теперь у вас должен быть контейнер Docker, который запускает два node процесса внутри него на портах 3000 и 4000 соответственно. Вы можете изменить порты и настройки на ваше усмотрение в Dockerfile и docker-compose.yaml.