我写了一个 Jupyter 服务器扩展。当我配置它使用jupyter serverextension enable --py my_module
并使用 启动 Jupyter Notebook 时jupyter notebook
,扩展运行良好。但是当我以相同的方式配置它然后使用 启动 Jupyterjupyterhub
时,不会加载 serverextension。请问有谁知道jupyterhub配置吗?
问问题
519 次
1 回答
1
如果您使用DockerSpawner,这意味着您的Jupyterhub
服务器会为每个用户创建一个新容器,并在该容器中从头开始安装笔记本。这就是您的扩展无法运行的原因 - 您的常规notebook
服务器已安装扩展,但notebook
Docker 容器中的服务器尚未安装您的扩展,因为您使用的是默认jupyterhub/singleuser
映像。
您将必须创建一个自定义 Docker 映像,您的JupyterHub
服务器将使用该映像来创建您的notebook
服务器。这是一个简单的 Dockerfile 示例,向您展示基础知识:
FROM jupyterhub/singleuser
USER root
COPY /path/to/YourExtension-1.0.tar.gz /home/jovyan/work
RUN pip install YourExtension-1.0.tar.gz
RUN jupyter serverextension enable --py your_extension --sys-prefix
RUN rm YourExtension-1.0.tar.gz
显然用相关名称替换对“您的扩展名”的引用。我们在这里所做的只是从jupyterhub/singleuser
图像继承并复制和安装扩展。然后,在您的JupyterHub
配置中,在您的文件中指定您的 Docker 映像(在通过运行构建您的 Docker 映像之后docker build
),jupyterhub_config.py
如下所示:
c.DockerSpawner.image = 'yourrespository/yourimage'
于 2018-02-05T11:07:05.797 回答