Я пытаюсь запустить приложение из контейнера Docker, который должен открыть вдову с графическим интерфейсом (видеопоток в моем случае). Контейнер Docker запускается на Raspberry Pi, и я SSH подключаюсь к Pi с моего Mac, а затем я запускаю команду Docker run. У меня есть одна проблема здесь:
Когда я запускаю все это следующим образом, оно работает безупречно:
- Я запускаю команду как:
docker run -it --net = host --device = / dev / vcsm --device = / dev / vchiq -e
DISPLAY -v /tmp/.X11-unix joesan / motion_detector bash
В bash, который открывается после ввода команды запуска Docker, я устанавливаю xauth
root @ cctv: / raspi_motion_detection / project # apt-get install xauth
Затем я добавляю печенье Xauth, используя Xauth add
Затем я запускаю свою программу на 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
Есть что-нибудь, что я пропускаю? Пожалуйста, помогите!