mediasoup v3 с докером

Я пытаюсь запустить пример 2 WebRTC (используя mediasoup) в докере.

Я хочу запустить два сервера, поскольку я работаю над видеосвязью в нескольких экземплярах!

Моя ошибка:

Вы видели эту ошибку: createProducerTransport null Ошибка: сбой привязки порта из-за того, что адрес недоступен [транспорт: udp, ip: '172.17.0.1', порт: 50517, попытка: 1/50000]

Думаю, это как-то связано с настройкой сети Docker?

docker-compose.yml

version: "3"
services:
  db:
    image: mysql
    restart: always
  app:
    image: app
    build: .
    ports:
      - "1440:443"
      - "2000-2020"
      - "80:8080"
    depends_on:
      - db 
  app2:
    image: app
    build: .
    ports:
      - "1441:443"
      - "2000-2020"
      - "81:8080"
    depends_on:
      - db 

Файл Docker

FROM node:12

WORKDIR /app
COPY . .

CMD npm start

person codemeasandwich    schedule 19.09.2020    source источник
comment
Возможно, вам поможет эта проблема с github. Можете попробовать отредактировать config.js и изменить настройки webRtcTransport?   -  person flaxel    schedule 19.09.2020


Ответы (3)


Он говорит, что не может связать адрес, поэтому проблема может быть в IP-адресе или порте.

IP-адрес кажется IP-адресом экземпляра докера. хотя экземпляры докера находятся на двух разных машинах, это должен быть IP-адрес сервера, а не экземпляр докера. (в настройках медиасупа)

Есть также порты соединения rtcp, которые должны быть открыты в экземпляре докера. Обычно они также находятся в конфигурационном файле mediasouo. обычно диапазон из нескольких сотен портов, которые необходимо открыть.

person Dirk V    schedule 19.09.2020

Вы должны установить минимальный и максимальный порт rtc на 2000 и 2020 для целей тестирования. Также вы не перенаправляете эти порты, я думаю. В docker-compose используйте 2000-2020:2000-2020 Также убедитесь, что вы правильно установили listenIps.

person Md Azharuddin    schedule 10.11.2020

Если вы запускаете mediasoup в докере, контейнер, в котором установлен mediasoup, должен запускаться в сетевом режиме хоста.

Это объясняется здесь:

Как использовать хост-сеть для создания докеров?

и официальные документы

https://docs.docker.com/network/host/

Также вам следует обратить внимание на настройки конфигурации mediasoup webRtcTransport.listenIps и plainRtpTransport.listenIp, они должны сообщать клиенту, какой IP-адрес прослушивает ваш сервер mediasoup.

person brndusic    schedule 18.05.2021