1

我写了一个 Jupyter 服务器扩展。当我配置它使用jupyter serverextension enable --py my_module并使用 启动 Jupyter Notebook 时jupyter notebook,扩展运行良好。但是当我以相同的方式配置它然后使用 启动 Jupyterjupyterhub时,不会加载 serverextension。请问有谁知道jupyterhub配置吗?

4

1 回答 1

1

如果您使用DockerSpawner,这意味着您的Jupyterhub服务器会为每个用户创建一个新容器,并在该容器中从头开始安装笔记本。这就是您的扩展无法运行的原因 - 您的常规notebook服务器已安装扩展,但notebookDocker 容器中的服务器尚未安装您的扩展,因为您使用的是默认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 回答