Не может запустить приложения X в док-контейнере на хосте Archlinux

У меня есть Dockerfile, который позволяет мне запускать приложения X. Он отлично работает на хосте Ubuntu, но не на хосте Archlinux:

FROM mascip/archlinux:2014.12.09

# To avoid a bug with the filesystem: https://registry.hub.docker.com/u/base/arch/
RUN sed 's/^CheckSpace/#CheckSpace/g' -i /etc/pacman.conf

# BROWSERS
RUN pacman --noconfirm -S nvidia-libgl && pacman --noconfirm -S leafpad

# NON-ROOT USER
# Replace you uid, gid, and username
RUN pacman --noconfirm -S sudo
RUN export uid=1000 gid=1000 && the_user="abla" && \
    the_home="/home/${the_user}" && \
    the_capital_user=$(echo $the_user | sed 's/./\U&/') && \
    mkdir -p $the_home && \
    echo "${the_user}:x:${uid}:${gid}:${the_capital_user},,,:/${the_home}:/bin/bash" >> /etc/passwd && \
    echo "${the_user}:x:${uid}:" >> /etc/group && \
    echo "${the_user} ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/${the_user} && \
    chmod 0440 /etc/sudoers.d/${the_user} && \
    chown ${the_user}:${the_user} -R ${the_home}

# Replace username and home
ENV USER abla
ENV HOME /home/abla
WORKDIR /home/abla

USER abla

CMD /usr/bin/leafpad

Чтобы запустить его, я делаю:

$ docker build -t a1 .

$  docker run -ti \
    -e DISPLAY -e XAUTHORITY=/tmp/.Xauthority -v /home/user/.Xauthority:/tmp/.Xauthority -v /tmp/.X11-unix:/tmp/.X11-unix \
    a1 leafpad

который работает в Ubuntu (открывается окно Leafpad), но не в Arch, где я получаю:

leafpad: Cannot open display:

Мне нужно, чтобы это сработало в ближайшее время. Любые идеи для дальнейшего изучения будут с благодарностью.

PS: у меня есть аналогичный контейнер Docker, который запускает leafpad в контейнере Ubuntu; проблема точно такая же и для этого контейнера. PPS: отсюда происходит Dockerfile: [url] http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/[/url]

1 ответ

Попробуйте использовать

xhost +

тогда связывайтесь с вещами Xauth

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