Jupyterhub/singleuser shared volume

I’m trying to setup a Jupyterhub server on Ubuntu 16.04, much along the lines of https://github.com/minrk/jupyterhub-demo.

I changed the jupyterhub_config.py to support persistent storage using the tips given here https://github.com/jupyterhub/dockerspawner#data-persistence-and-dockerspawner:

  • Docker: Installing libraries on centos image
  • Kafka and Docker: Pushing a Kafka Messages to the another's Dockerized Consumer
  • MySQL in Docker frozen at root password config
  • By default, can a docker container call host's localhost UDP?
  • Gracefully stop Phusion Passenger running on apache
  • Friendly URL between docker containers/images
  • notebook_dir = os.environ.get('DOCKER_NOTEBOOK_DIR') or '/home/jovyan/work'
    c.DockerSpawner.notebook_dir = notebook_dir
    c.DockerSpawner.volumes = { 'jupyterhub-user-{username}': notebook_dir }
    

    However, I would like to add a shared “team” volume for teams of users. I have a dictionary with usernames (keys) and teamnames (values) to map users to teams.

    Ideally I would state something like:

    c.DockerSpawner.volumes = { 
        'jupyterhub-user-{username}': notebook_dir, 
        'jupyterhub-team-{teamname}': os.path.join(notebook_dir, 'shared' 
    }
    

    But I have no clue as to how to pass another {name} mapping to dockerspawner.

    I tried fiddling with these, but so far to no avail:

    c.DockerSpawner. ...
    extra_create_kwargs = Dict(config=True, help="Additional args to pass for container create")
    extra_start_kwargs = Dict(config=True, help="Additional args to pass for container start")
    extra_host_config = Dict(config=True, help="Additional args to create_host_config for container create")
    

    Any ideas?

    P.S.: This question is somewhat related to Shared, writable folders in jupyterhub

  • Docker “not found” for existing file
  • Configure Dancer from environment variables?
  • Kubernetes plugin containers can't connect back to Jenkins
  • Ruby: Catching Sequel::DatabaseConnectionError
  • Docker with different gateways on containers
  • How to add $(…):$(…) in Docker Compose
  • Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.