Я хочу запустить сообщество Pycharm в Docker на моем рабочем столе. Я создал Dockerfile (ниже) и увидел, что он отлично работает на Mac.
FROM debian:buster-slim
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
ca-certificates \
curl \
apt-utils \
dirmngr \
gnupg \
libasound2 \
libdbus-glib-1-2 \
libgtk-3-0 \
libxrender1 \
libx11-xcb-dev \
libx11-xcb1 \
libxt6 \
xz-utils \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/*
ENV HOME /home/user
RUN useradd --create-home --home-dir $HOME user \
&& chown -R user:user $HOME
ENV LANG C.UTF-8
RUN apt-get update && \
apt-get install -y python-pip \
vim \
wget \
x11-utils \
xfonts-base \
xpra
# install PyCharm
RUN cd / && \
wget -q http://download.jetbrains.com/python/pycharm-community-2019.1.1.tar.gz && \
tar xvfz pycharm-community-2019.1.1.tar.gz && \
rm pycharm-community-2019.1.1.tar.gz
USER user
CMD [ "/pycharm-community-2019.1.1/bin/pycharm.sh"]
Однако, когда я пытаюсь запустить это в Ubuntu, я получаю ошибки X11 из кода Pycharm:
Start Failed: Не удалось инициализировать графическое окружение
java.awt.AWTError: Невозможно подключиться к серверу окон X11, используя «: 1» в качестве
значение переменной DISPLAY. в
java.desktop / sun.awt.X11GraphicsEnvironment.initDisplay (собственный метод)
Команда для вызова контейнера:
docker run -it --rm -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=${DISPLAY} <<image_id>>
Я испробовал множество вариантов var DISPLAY (например, unix $ DISPLAY ), но ни один из них не сработал.
Обновление:
Я побежал:
docker run -it --rm -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=${DISPLAY} --entrypoint /bin/sh <<image_id>>
чтобы получить доступ в контейнер, а затем запустил:
$ ls -l /tmp
total 0
Я в замешательстве - я думал, что сокет X11, находящийся на моем хост-компьютере, был бы привязан к тому же месту в контейнере. Это красная сельдь?