Запрос на помощь Docker: я пытаюсь подключить контейнер в нашем Swarm к устройству в /dev
. Соединение работает правильно через сопоставление устройств при работе в контейнере докеров, однако мы не можем подключиться к устройству в нашем узле Swarm.
Устройство представляет собой графическое оборудование для использования драйверов vaapi с нашим конвейером Gstreamer и расположено здесь: /dev/dri/renderD128
, но это общий вопрос для подключения к любому устройству из контейнера в рое.
Мне нужен совет о том, как это будет выглядеть при подключении к нашему устройству с помощью общих ресурсов Swarmkit.
Доступно обсуждение Swarmkit и графического оборудования, включая:
- (Проблема) Добавить поддержку для общих ресурсов Swarmkit # 33439: https://github.com/moby/moby/issues/33439
- (Объединенный PR) Добавьте общие ресурсы # 5416: https://github.com/docker/docker.github.io/pull/5416
Но мне не удалось превратить их в раствор.
Одна команда запуска докера, которая успешно подключается к этому устройству, когда НЕ запущена в рое, выглядит следующим образом:
docker run -ti \
-e XDG_RUNTIME_DIR=/tmp \
--device=/dev/dri/card0:/dev/dri/card0 \
--device=/dev/dri/renderD128:/dev/dri/renderD128 \
-v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY \
<docker-image> bash
Но опять же, это общий вопрос для контейнеров, роев и сопоставления устройств в целом, и он не связан с этим конкретным устройством.
Мы используем docker compose file версии 3 и попробовали вариант «device
», который, как и ожидалось, не работает: https://docs.docker.com/compose/compose-file/#devices
«Эта опция игнорируется при развертывании стека в режиме роя с файлом Compose (версия 3)».
Благодарю за помощь.