Jupyterlab extensions as part of repo2docker configuration

In reading about Configuration Files, I did not see anything about specifying JupyterLab Extensions.

When I currently launch a gist mybinder.org I see the following installed:

jupyterlab: 2.2.0
node: 10.21.0
npm: 6.14.4

Could the npm packages of jupyterlab extensions be specified in the "dependencies":{} key of a package.json file? From there the system would loop over the values like so during the build: jupyter labextension install my-extension@1.2.3.

Hmm perhaps a better way to install multiple extensions is needed

In this scenario, lab and extensions are assumed to be used. settings and config could also be made a part of the repo2docker configuration:

  • Want screen to load to /lab not tree in jupyter_notebook_config.py
  • Want extensionmanager enabled in .jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension
// @jupyterlab/extensionmanager-extension:plugin
{
    "disclaimed": true,
    "enabled": true
}

https://jupyterlab.readthedocs.io/en/stable/user/extensions.html#settings

Hi @HashRocketSyntax, the postBuild file is used to enable extensions, for example https://github.com/binder-examples/jupyter-extension

2 Likes

Thanks for pointing me in the right direction @sgibson91.

Looking at the source code, I assume that these lines lines get included in a system Dockerfile like so.

I guess so, I’m not as familiar with r2d’s source code as I am the cluster management side of mybinder.org :slight_smile: