Когда я пытаюсь запустить его с помощью
Код: Выделить всё
docker run --rm -it my_image
Код: Выделить всё
qt.qpa.xcb: could not connect to display localhost:10.0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
Код: Выделить всё
QT_GRAPHICSSYSTEM="native" docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my_image
Затем я обнаружил, можно ли запускать приложения с графическим интерфейсом в контейнере Docker?.
Принятый ответ, кажется, специфичен для определенных приложений, таких как Firefox?
Прокрутив дальше, я получил решение, которое говорит мне установить X11UseLocalhost no в sshd_config и затем назовите это как
Код: Выделить всё
docker run -v $HOME:/hosthome:ro -e XAUTHORITY=/hosthome/.Xauthority -e DISPLAY=$(echo $DISPLAY | sed "s/^.*:/$(hostname -i):/") my_image
Код: Выделить всё
qt.qpa.xcb: could not connect to display 127.0.1.1:13.0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
Код: Выделить всё
xhost +
XSOCK=/tmp/.X11-unix/X0
docker run -v $XSOCK:$XSOCK my_image
Затем я попробовал другой ответ, добавив
Код: Выделить всё
RUN export uid=0 gid=0 && \
mkdir -p /home/developer && \
echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd && \
echo "developer:x:${uid}:" >> /etc/group && \
mkdir /etc/sudoers.d/ && \
echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \
chmod 0440 /etc/sudoers.d/developer && \
chown ${uid}:${gid} -R /home/developer
Я также попробовал несколько способов, описанных в http://wiki.ros.org/docker/Tutorials/GUI, та же ошибка.
Я делаю что-то не так? Обратите внимание, что я работаю на удаленном компьютере через SSH, конечно, с включенной переадресацией X11 (и приложение отлично работает вне Docker). Также обратите внимание, что я пишу клиент-серверное приложение, а серверная часть, которая не нуждается в элементах графического интерфейса, но использует большую часть исходного кода, отлично работает из своего контейнера.
Надеюсь для решения, которое не требует от меня изменения системы, поскольку причина, по которой я использую Docker, в первую очередь заключается в том, чтобы пользователи моего приложения могли запустить его без особых хлопот.
Подробнее здесь: https://stackoverflow.com/questions/656 ... -container