Jupyterhub/singleuser 共享卷
Jupyterhub/singleuser shared volume
我正在尝试在 Ubuntu 16.04 上设置一个 Jupyterhub 服务器,与 https://github.com/minrk/jupyterhub-demo 大致相同。
我更改了 jupyterhub_config.py 以使用此处给出的提示支持持久存储 https://github.com/jupyterhub/dockerspawner#data-persistence-and-dockerspawner:
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 }
但是,我想为用户团队添加一个共享 "team" 卷。我有一本包含用户名(键)和团队名(值)的字典,用于将用户映射到团队。
理想情况下,我会这样说:
c.DockerSpawner.volumes = {
'jupyterhub-user-{username}': notebook_dir,
'jupyterhub-team-{teamname}': os.path.join(notebook_dir, 'shared'
}
但我不知道如何将另一个 {name} 映射传递给 dockerspawner。
我尝试摆弄这些,但到目前为止无济于事:
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.: 这个问题和Shared, writable folders in jupyterhub
有点关系
来自@minrk 的回复,您在此处发帖几周后 GitHub 收到。
For more advanced logic not exposed in the default config objects, you can also subclass DockerSpawner in your config file:
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
我正在尝试在 Ubuntu 16.04 上设置一个 Jupyterhub 服务器,与 https://github.com/minrk/jupyterhub-demo 大致相同。
我更改了 jupyterhub_config.py 以使用此处给出的提示支持持久存储 https://github.com/jupyterhub/dockerspawner#data-persistence-and-dockerspawner:
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 }
但是,我想为用户团队添加一个共享 "team" 卷。我有一本包含用户名(键)和团队名(值)的字典,用于将用户映射到团队。
理想情况下,我会这样说:
c.DockerSpawner.volumes = {
'jupyterhub-user-{username}': notebook_dir,
'jupyterhub-team-{teamname}': os.path.join(notebook_dir, 'shared'
}
但我不知道如何将另一个 {name} 映射传递给 dockerspawner。
我尝试摆弄这些,但到目前为止无济于事:
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.: 这个问题和Shared, writable folders in jupyterhub
有点关系来自@minrk 的回复,您在此处发帖几周后 GitHub 收到。
For more advanced logic not exposed in the default config objects, you can also subclass DockerSpawner in your config file:
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