Не удается изменить Jupyter Lab Theme в контейнере - PullRequest
0 голосов
/ 27 октября 2019

Проблема:

Я создал образ докера с установленной Jupyter Lab для локального развития среды машинного обучения.

Чтобы избежать использования пользователя root в контейнере, я использовал тот же uid в контейнере, что имой локальный хост-компьютер.

Мне удалось запустить Jupyter Lab в контейнере с помощью команды:

Jupyter lab --ip=0.0.0.0 --port=8888

Однако я не могу изменить тему jupyter lab. и он сообщает о следующих ошибках:

[W 14:02:12.974 LabApp] 500 PUT /lab/api/settings/@jupyterlab/apputils-extension:themes?1572184932897 (172.17.0.1): Failed writing settings (@jupyterlab/apputils-extension:themes): [Errno 13] Permission denied: '/.jupyter'
[W 14:02:12.975 LabApp] Failed writing settings (@jupyterlab/apputils-extension:themes): [Errno 13] Permission denied: '/.jupyter'
[E 14:02:12.975 LabApp] {
      "Host": "127.0.0.1:8888",
      "Pragma": "no-cache",
      "Accept": "*/*",
      "Authorization": "token bbe0ea37f1d54cd21cac85350cf81f7ab831d298ff2ce9ba",
      "X-Xsrftoken": "2|4e33c1b7|8b2a94f61a038e400b6f1d672c8ad95c|1572182770",
      "Accept-Language": "en-gb",
      "Cache-Control": "no-cache",
      "Accept-Encoding": "gzip, deflate",
      "Content-Type": "application/json",
      "Origin": "http://127.0.0.1:8888",
      "Content-Length": "237",
      "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.2 Safari/605.1.15",
      "Referer": "http://127.0.0.1:8888/lab",
      "Connection": "keep-alive",
      "Cookie": "username-127-0-0-1-8888=\"2|1:0|10:1572184913|23:username-127-0-0-1-8888|44:MGMzNzJmNDAwOWQ3NDQzOWI1ZDgzOTY5ZTUzYTI4NjQ=|e2e38e0740c172241ffd8d95316bbe453cc40fd4e03e8f6530593d746f8d9037\"; _xsrf=2|4e33c1b7|8b2a94f61a038e400b6f1d672c8ad95c|1572182770"
    }
[E 14:02:12.975 LabApp] 500 PUT /lab/api/settings/@jupyterlab/apputils-extension:themes?1572184932897 (172.17.0.1) 8.73ms referer=http://127.0.0.1:8888/lab

Каталог '/.jupyter' даже не существует в контейнере.

Как я могу это исправить и изменить тему на темную? Спасибо!


Приложение

Ниже приведены дополнительные коды при необходимости

Мой Dockerfile:

FROM tensorflow/tensorflow:latest-gpu-py3-jupyter AS pre

WORKDIR /repo
RUN apt-get -qqy update && apt-get install -qqy \
    curl \
    npm \
    nodejs

FROM pre AS dev
COPY ./* /repo/
RUN pip install --upgrade pip && pip install -r requirement.txt
RUN jupyter labextension install @jupyterlab/toc
RUN chmod -R 777 /.local

require.txt:

pandas
scipy
scikit-learn
matplotlib
seaborn
jupyterlab

Как запустить контейнер:

docker run -it -u $(id -u):$(id -g) \
               --rm \
               -p 8888:8888 \
               -p 6006:6006 \
               -v /$(pwd):/repo \
               -w /repo \
               --name $(basename $("pwd"))\
               $(basename $("pwd")):latest \
               bash

1 Ответ

1 голос
/ 28 октября 2019

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

Возможно, вам лучше выбрать вспомогательный каталог, который вы монтируете в контейнер с помощью команды run. Обратите внимание, что в каталоге .jupyter будет создан файл jupyter_notebook_config.py со многими параметрами, которые вы можете настроить. Например, c.NotebookApp.allow_remote_access = False может быть уместным в вашей ситуации.

...