Как добавить noVNC в dockerised jupyterlab

#python-3.x #docker #jupyter-lab #novnc

#python-3.x #докер #jupyter-lab #novnc

Вопрос:

Я создал ниже dockerfile и добавил novnc и websockify в соответствии с их документацией. После запуска docker я мог видеть страницу подключения в браузере после копирования и вставки URL-адреса, который выводится novnc_proxy скриптом внутри точки входа docker.

Однако, как только я попытался нажать «Подключиться», он выдает сообщение об ошибке failed to connect the server . Кто-нибудь знает, как исправить эту ошибку? или есть какая-то конфигурация, которую я пропускаю для запуска VNC?

Dockerfile

 FROM python:3.8.0

ENV DISPLAY :1

RUN git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it amp;amp; 
    bash ~/.bash_it/install.sh --silent


RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - amp;amp; 
    apt-get upgrade -y amp;amp; 
    apt-get install -y nodejs 
                       supervisor 
                       openssl 
                       xvfb 
                       x11vnc 
                       openbox amp;amp; apt-get clean amp;amp; 
    rm -rf /var/lib/apt/lists/*

RUN pip install --upgrade pip amp;amp; 
    pip install --upgrade 
    PyVirtualDisplay 
    pillow 
    numpy 
    pandas 
    dash 
    Jupyterlab 
    ipywidgets 
    jupyterlab-git 
    jupyter-server-proxy 
    jupyter-dash 
    jupyterlab-novnc 
    nbserverproxy

RUN jupyter lab build
# RUN pip install --upgrade pip amp;amp; 
#     pip install --upgrade 
#     jupyterlab "pywidgets>=7.5"
RUN jupyter serverextension enable --py nbserverproxy

RUN jupyter labextension install 
    jupyterlab-plotly@4.14.3 
    @jupyter-widgets/jupyterlab-manager 
    @jupyterlab/git 
    @jupyterlab/server-proxy

COPY config/ /root/.jupyter/


VOLUME /notebooks
WORKDIR /notebooks

RUN git clone https://github.com/novnc/noVNC.git ./novnc  amp;amp; 
    git clone https://github.com/novnc/websockify.git ./novnc/utils/websockify

COPY entrypoint.sh .

RUN chmod -R 755 /notebooks/
EXPOSE 8888 8050 5901 6080 8081
ENTRYPOINT ["/notebooks/entrypoint.sh"]
 

entrypoint.sh

 echo
jupyter lab --allow-root --ip=* --port=8888 amp;
/notebooks/novnc/utils/novnc_proxy --vnc localhost:5901 --listen 6080
fg %1
 

Я создаю образ docker и запускаю образ docker
docker run -it -p 8888:8888 -p 8050:8050 -p 5901:5901 -p 6080:6080 <ImageName>

O / p этого запуска docker выглядит следующим образом:

noVNCoutput

и вместо URL-адреса, отображаемого в выводе std, если я пытаюсь войти http://localhost:6080/vnc.html?host=localhostamp;port=6080 в систему, он показывает мне браузер входа Браузер noVNCв систему, но как только я нажимаю на connect, он показывает failed to connect the server

и журнал докеров показывает мне отказано в подключении

Внутри контейнера я мог видеть websockify , что служба запущена

Внутри контейнера

Я подозреваю, что это из-за проблемы с подключением к websocket, но не знаю, что здесь нужно сделать.

Websocket

Комментарии:

1. Исправлена проблема: я не уверен, что это проблема внутри контейнера, в котором я запускал x11vnc, но как только я изменил его на просто vncserver …. все просто начало работать нормально.

2. change198 можете ли вы опубликовать файл Dockerfile, который работал, пожалуйста … или местоположение github, если оно у вас есть. С уважением.