Skip to content

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]