2017-07-08 19 views
1

私は、Ubuntu 16.04上でJupyterhubサーバーを、多くの場合https://github.com/minrk/jupyterhub-demoの行に沿ってセットアップしようとしています。Jupyterhub/singleuser共有ボリューム

私はここにhttps://github.com/jupyterhub/dockerspawner#data-persistence-and-dockerspawner与えられたヒントを使用して永続ストレージをサポートするためにjupyterhub_config.pyを変更:

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 } 

しかし、私は、ユーザーのチームのための共有「チーム」ボリュームを追加したいと思います。私はユーザ名(キー)とチーム名(値)を持つ辞書を使って、ユーザをチームにマッピングしています。

理想的には私のようなもの状態になります。

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

をしかし、私はdockerspawnerに別の{name}のマッピングに合格する方法についての見当もつかない。

私はこれらをいじってみましたが、これまで無駄に:

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") 

任意のアイデア?

P.Sは:この質問は、あなたが数週間ここに掲示した後GitHubで受信し@minrkによって返信からShared, writable folders in jupyterhub

答えて

1

に多少関連しています。

デフォルトの設定オブジェクトにさらされていない、より高度なロジックのために、また、あなたの設定ファイルにDockerSpawnerをサブクラス化することができます

from dockerspawner import DockerSpawner 
class MyDockerSpawner(DockerSpawner): 
    def start(self): 
     # username is self.user.name 
     team = 'myteam' 
     # add team volume to volumes 
     self.volumes['jupyterhub-team-{}'.format(team) = '/home/shared' 
     return super().start() 

c.JupyterHub.spawner_class = MyDockerSpawner 
関連する問題