面对教学场景自动同步课件的jupyterhub快速部署
面对教学场景自动同步课件的jupyterhub快速部署
参考文献:https://www.cnblogs.com/lyjun/p/18884521
项目已开源在:https://github.com/ForsakenDelusion/my-jupyter-deploy
简述
该项目面向于小规模团队培训/教学场景,利用docker容器化部署,通过Git 同步钩子: 容器启动时会自动执行 hooks/sync-materials.sh拉取指定仓库,这样多用户登陆之后都能看见管理员设定的教学仓库。
场景1:企业内部培训
痛点 :新员工技术培训环境配置复杂,版本不一致 解决方案 :使用my-jupyter-deploy,新员工只需打开浏览器,输入账号密码即可获得统一的环境
场景2:高校教学
痛点 :学生电脑配置各异,实验环境难以统一 解决方案 :部署在校园服务器,学生通过校园网访问,确保实验环境完全一致
场景3:团队协作开发
痛点 :数据科学家环境差异导致代码运行结果不一致 解决方案 :统一开发环境,代码评审时无需担心环境问题
核心特性:
- 一键部署 :通过Docker Compose快速启动
- 自动课件同步 :Git仓库自动拉取最新教学材料
- 中文环境支持 :开箱即用的中文界面和编码支持
- 环境隔离 :开发与生产环境完全隔离
- 机器学习生态 :预装完整的ML/DL工具链
1. 容器化设计理念
项目采用 双镜像架构 :
- JupyterHub镜像 :负责用户认证和容器调度
- Notebook镜像 :包含完整的数据科学环境
这种设计让团队可以独立更新两个部分,比如升级Python包时只需重建Notebook镜像,而用户认证系统保持不变。
2. 配置简单
各项配置都可以在docker-compose.yml的字段进行设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
environment:
# This username will be a JupyterHub admin
JUPYTERHUB_ADMIN: admin
# All containers will join this network
DOCKER_NETWORK_NAME: jupyterhub-network-dev
# JupyterHub will spawn this Notebook image for users
# !!!notebook的镜像也换!!!
# DOCKER_NOTEBOOK_IMAGE: quay.io/jupyter/base-notebook:latest
DOCKER_NOTEBOOK_IMAGE: my-custom-notebook-dev:latest
# Notebook directory inside user image
DOCKER_NOTEBOOK_DIR: /home/jovyan/work
# Git 同步脚本配置 (请在此处填入你的仓库地址)
# REPO_URL: https://github.com/your-org/your-repo.git
# REPO_BRANCH: main
# 代理配置
# HTTP_PROXY: http://proxy.example.com:7890
# HTTPS_PROXY: http://proxy.example.com:7890
3. 部署简单
几行命令即可完成镜像构建和部署
1
2
3
4
5
docker build -t my-custom-notebook-dev:latest -f Dockerfile.notebook .
docker build -t my-custom-notebook-dev:latest -f Dockerfile.notebook .
docker compose up -d
欢迎大家使用!一起来测测!
This post is licensed under
CC BY 4.0
by the author.