LXC и Google Chrome не может открыть дисплей

Я пытаюсь запустить Google Chrome из контейнера LXC, но он не удается, несмотря на мои неоднократные попытки и различные изменения.

ERROR:browser_main_loop.cc(271)] Gtk: cannot open display: :0.0

Вот мой сценарий

#!/bin/sh
CONTAINER=xenial-gui
CMD_LINE="google-chrome --disable-setuid-sandbox --user-data-dir $*"

STARTED=false

if ! lxc-wait -n $CONTAINER -s RUNNING -t 0; then
    lxc-start -n $CONTAINER -d
    lxc-wait -n $CONTAINER -s RUNNING
    STARTED=true
fi

PULSE_SOCKET=/home/ubuntu/.pulse_socket

lxc-attach --clear-env -n $CONTAINER -- sudo -u ubuntu -i \
    env DISPLAY=$DISPLAY PULSE_SERVER=$PULSE_SOCKET $CMD_LINE

if [ "$STARTED" = "true" ]; then
    lxc-stop -n $CONTAINER -t 10
fi

1 ответ

Для меня это работает, когда делаю xhost local:* как корень или с sudo, Эта команда разрешает доступ к экрану для локальных пользователей. Мне нужно выдать это, потому что я использую непривилегированные контейнеры от имени другого пользователя при входе на рабочий стол.

Если вы работаете с непривилегированным контейнером, вы можете еще больше ограничить это xhost local:username, Смотрите также man xhost,

Когда я начал экспериментировать, я случайно включил эту функцию и удивился после перезагрузки машины.

Другие вопросы по тегам