Ошибка аутентификации X11 при запуске в качестве контейнера Docker - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь запустить приложение из контейнера Docker, который должен открыть вдову с графическим интерфейсом (видеопоток в моем случае). Контейнер Docker запускается на Raspberry Pi, и я SSH подключаюсь к Pi с моего Mac, а затем я запускаю команду Docker run. У меня есть одна проблема здесь:

Когда я запускаю все это следующим образом, оно работает безупречно:

  1. Я запускаю команду как:

docker run -it --net = host --device = / dev / vcsm --device = / dev / vchiq -e DISPLAY -v /tmp/.X11-unix joesan / motion_detector bash

  1. В bash, который открывается после ввода команды запуска Docker, я устанавливаю xauth

    root @ cctv: / raspi_motion_detection / project # apt-get install xauth

  2. Затем я добавляю печенье Xauth, используя Xauth add

  3. Затем я запускаю свою программу на Python, которая показывает окно GUI с видеопотоком

Пока все хорошо. Но каждый раз я не хочу повторять эти шаги снова и снова. Поэтому я написал небольшой скрипт для этого, как показано ниже:

HOST=cctv

DISPLAY_NUMBER=$(echo $DISPLAY | cut -d. -f1 | cut -d: -f2)
echo $DISPLAY_NUMBER

# Extract auth cookie
AUTH_COOKIE=$(xauth list | grep "^$(hostname)/unix:${DISPLAY_NUMBER} " | awk '{print $3}')

# Add the xauth cookie to xauth
xauth add ${HOHOSTSTNAME}/unix:${DISPLAY_NUMBER} MIT-MAGIC-COOKIE-1 ${AUTH_COOKIE}

# Launch the container
docker run -it --net=host --device=/dev/vcsm --device=/dev/vchiq -e DISPLAY -v /tmp/.X11-unix  joesan/motion_detector

Но на этот раз это не с ошибкой:

X11 connection rejected because of wrong authentication.
Unable to init server: Could not connect: Connection refused

Затем я попытался запустить приведенный выше сценарий как пользователь sudo и получил следующее:

xauth:  file /root/.Xauthority does not exist
xauth: (argv):1:  bad "add" command line
X11 connection rejected because of wrong authentication.
Unable to init server: Could not connect: Connection refused

Есть что-нибудь, что я пропускаю? Пожалуйста, помогите!

...