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:

  • Set write permission into the volume folder inside docker windows/windows container
  • How does Docker Swarm start a container
  • How to access boot2docker-ip from inside a docker container
  • Docker 1.7 consuming more space than Docker 1.5 for images
  • Rancher: always deploying to new stack
  • Concourse Pipeline failing for simple pipleline
  • 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

  • What is a reliable way to change PostgreSQL configuration, especially move its data directory in a script?
  • Bash with docker exec don't go down when there's more content to show
  • Kubernetes Volume Mount with Replication Controllers
  • Check for updated package via yum in Dockerfile
  • How to create docker image for local application taking file and value parameters
  • Docker container is unable to connect to port opened by another docker container
  • Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.