JupyterHub 配置文件
代码地址:02-jupyterhub/config/jupyterhub_config.py at main · prevailna/project-1-jupyter
配置文件
python
import os
c = get_config()
# 配置 DockerSpawner
c.JupyterHub.spawner_class = (
"dockerspawner.DockerSpawner" # 使用 DockerSpawner 作为 JupyterHub 的 Spawner
)
c.DockerSpawner.image = os.environ.get(
"DOCKER_NOTEBOOK_IMAGE", "quay.io/jupyter/base-notebook:latest"
) # 使用 quay.io/jupyter/base-notebook:latest 作为 Docker 镜像
# 数据持久化
notebook_dir = os.environ.get("DOCKER_NOTEBOOK_DIR", "/home/jovyan/work")
c.DockerSpawner.notebook_dir = notebook_dir
c.DockerSpawner.volumes = {"jupyterhub-user-{username}": notebook_dir}
c.DockerSpawner.remove = True
c.DockerSpawner.debug = True
# 资源限制
c.DockerSpawner.mem_limit = "2G"
c.DockerSpawner.cpu_limit = 1
# 网络
network_name = os.environ.get("DOCKER_NETWORK_NAME", "jupyterhub-net")
c.DockerSpawner.use_internal_ip = False # 关闭内部 IP,改用服务名连接
c.DockerSpawner.network_name = network_name # 使用 jupyterhub-net 作为 Docker 网络
c.JupyterHub.hub_ip = "jupyterhub"
c.JupyterHub.hub_port = 8080
c.JupyterHub.hub_connect_ip = "jupyterhub" # 或 use_internal_ip=False 时的服务名
c.JupyterHub.cookie_secret_file = "/data/jupyterhub_cookie_secret"
c.JupyterHub.db_url = "sqlite:////data/jupyterhub.sqlite"
# NativeAuthenticator
c.Authenticator.allow_all = True # 允许所有用户登录
c.JupyterHub.authenticator_class = "nativeauthenticator.NativeAuthenticator"
c.NativeAuthenticator.open_signup = True # 允许所有用户注册
admin = os.environ.get("JUPYTERHUB_ADMIN")
if admin:
c.Authenticator.admin_users = [admin]