Приложение Jupyter Lab имеет отличные Терминалы с терминальной оболочкой в браузере, которая поддерживает цвета, клавиши навигации и практически все стандартные функции терминального приложения. В этом вопросе я имею в виду приложение /lab
, а не приложение classi c Notebook (/tree
).
Если я запускаю сервер Jupyter с использованием этого Docker образа, он прекрасно работает. Мне нужно создать свой собственный имидж, и желательно не на этом. Я делаю это просто как задокументировано:
docker run -it --rm -p 8888:8888 -v "$PWD":/jupyter python:3.8 bash
# pip install jupyterlab
# jupyter lab --config=/jupyter/jupyter_notebook_config.py
Выше предполагается, что у меня есть jupyter_notebook_config.py
в текущем каталоге:
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.port = 8888
c.NotebookApp.password = 'sha1:<salt>:<hash>'
c.NotebookApp.allow_password_change = False
c.NotebookApp.allow_root = True
c.NotebookApp.open_browser = False
Все работает, но терминал работает очень плохо, это не поддерживает цвета и отправляет коды (например, ^[[A
, ^[[B
) вместо клавиш со стрелками. Пошаговое расследование Dockerfile - не столь увлекательное занятие, может быть, кто-нибудь подскажет мне, о чем я пишу?
РЕДАКТИРОВАТЬ : я был маленьким немного ошибочен в отношении цветов (был смущен зеленой подсказкой по умолчанию на изображении jupyter/base-notebook
) и общим описанием проблемы. Причина root состояла в том, что оболочка, которая запускается в моем образе, имеет значение sh
, тогда как в официальном образе это bash
. Но, тем не менее, Терминал не полностью функционален, например, если я запускаю nano, он запускается только в области 80x25 символов и не растягивается до фактического размера терминала). Хотя стрелки работают в нано.