如何在 Jupyterhub/Jupyterlab 中初始化笔记本/工作目录的内容?
How to init content of notebooks / working directory in Jupyterhub/Jupyterlab?
如果我在 JupyterHub 中创建一个新用户,我希望使用一些入门示例初始化相应 JupyterLab 实例的工作目录:
我已经为 Jupyterlab 安装了 git 扩展。有没有办法为新用户自动克隆 git 存储库?
这是刷怪笼的文档:
https://jupyterhub.readthedocs.io/en/stable/reference/spawners.html
我可以找到有关工作区初始化的提示。
Spawner在配置文件中提供了一些钩子函数jupyterhub_config.py
。并且可以从挂钩函数中获取当前用户名。
import subprocess
def git(*args):
return subprocess.check_call(['git'] + list(args))
def init_working_directory(spawner):
username = spawner.user.name
git_source = 'https://$user:$password@gitlab.server.de/my/project'
target_folder = '/home/' + username + '/GettingStarted'
git('clone', git_source, target_folder)
c.Spawner.pre_spawn_hook = init_working_directory
还有几个问题:
a) git 克隆命令仅在第一次使用时起作用,当文件夹
/home/username/GettingStarted
尚不存在。
b) 延迟日志期间没有显示进度条,git克隆命令需要一段时间。
c) Git 密码可能显示错误 messages/console。
因此,我将首先在创建 Docker 容器时执行 git 克隆,如果 GettingStarted 文件夹尚不存在,则仅在 pre_spawn_hook 中执行本地副本。
如果我在 JupyterHub 中创建一个新用户,我希望使用一些入门示例初始化相应 JupyterLab 实例的工作目录:
我已经为 Jupyterlab 安装了 git 扩展。有没有办法为新用户自动克隆 git 存储库?
这是刷怪笼的文档: https://jupyterhub.readthedocs.io/en/stable/reference/spawners.html
我可以找到有关工作区初始化的提示。
Spawner在配置文件中提供了一些钩子函数jupyterhub_config.py
。并且可以从挂钩函数中获取当前用户名。
import subprocess
def git(*args):
return subprocess.check_call(['git'] + list(args))
def init_working_directory(spawner):
username = spawner.user.name
git_source = 'https://$user:$password@gitlab.server.de/my/project'
target_folder = '/home/' + username + '/GettingStarted'
git('clone', git_source, target_folder)
c.Spawner.pre_spawn_hook = init_working_directory
还有几个问题:
a) git 克隆命令仅在第一次使用时起作用,当文件夹 /home/username/GettingStarted 尚不存在。
b) 延迟日志期间没有显示进度条,git克隆命令需要一段时间。
c) Git 密码可能显示错误 messages/console。
因此,我将首先在创建 Docker 容器时执行 git 克隆,如果 GettingStarted 文件夹尚不存在,则仅在 pre_spawn_hook 中执行本地副本。