镜像与开发环境特殊接口
涵盖镜像管理(/images_modelview/api)、在线 IDE / Notebook(/notebook_modelview/api)、Docker 在线构建调试(/docker_modelview/api)。
镜像管理 /images_modelview
代码文件:myapp/views/view_images.py(route_base = '/images_modelview/api')
镜像在线构建
GET /images_modelview/api/build/<image_id>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| image_id | path | int | 镜像记录 ID |
响应: 302 重定向到构建日志页面 /frontend/k8s/web/log/{cluster}/{namespace}/{pod_name}
说明:
- 仅镜像创建者可执行
- 从镜像记录中提取 Dockerfile,创建 K8s Pod 执行
docker build && docker push - 如果已有构建 Pod 在运行,会先删除再重建
- 构建完成后可在日志页面查看进度
在线IDE /notebook_modelview
代码文件:myapp/views/view_notebook.py(route_base = '/notebook_modelview/api')
创建/打开 Jupyter
GET /notebook_modelview/api/entry/jupyter # 创建或打开
DELETE /notebook_modelview/api/entry/jupyter # 删除
GET 请求参数(Query):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | Notebook 名称,默认 {user}-pipeline |
| project_name | string | 否 | 项目名称,默认 public |
| label | string | 否 | 显示标签 |
| resource_memory | string | 否 | 内存限制,默认 10G |
| resource_cpu | string | 否 | CPU 限制,默认 10 |
| volume_mount | string | 否 | 挂载目录 |
| file_path | string | 否 | 打开的文件路径 |
| images | string | 否 | 使用的镜像 |
GET 响应: 302 重定向到 /notebook/jupyter/{name}/lab
DELETE 响应: 302 重定向到 Notebook 列表
说明:
- 自动创建 K8s Pod、Service、VirtualService
- 等待最多 20 秒确认 Pod 进入 Running 状态
- 支持 Jupyter / Theia / Matlab / RStudio 等 IDE 类型(根据镜像名自动识别)
重置在线IDE
GET/POST /notebook_modelview/api/reset/<notebook_id>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| notebook_id | path | int | Notebook 记录 ID |
响应: 302 重定向到 Notebook 列表
说明: 删除旧的 K8s 资源后重新创建 Pod、Service、VirtualService。会检查资源配额。
续期在线IDE
GET/POST /notebook_modelview/api/renew/<notebook_id>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| notebook_id | path | int | Notebook 记录 ID |
响应: 302 重定向到 Notebook 列表
说明: 刷新 changed_on 时间戳,避免超时被清理。
停止在线IDE
GET/POST /notebook_modelview/api/stop/<notebook_id>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| notebook_id | path | int | Notebook 记录 ID |
响应: 302 重定向到 Notebook 列表
说明: 删除 K8s Pod、Service、VirtualService,标记状态为 offline。
保存在线IDE(提交为镜像)
GET/POST /notebook_modelview/api/save/<notebook_id>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| notebook_id | path | int | Notebook 记录 ID |
响应: 302 重定向到提交日志页面 /frontend/k8s/web/log/{cluster}/{namespace}/{pod_name}
说明:
- 对运行中的容器执行
docker commit && docker push,保存为新镜像 - 异步任务监控提交状态,完成后更新
last_image字段 - 如果 Pod 未运行则报错
Docker构建 /docker_modelview
代码文件:myapp/views/view_docker.py(route_base = '/docker_modelview/api')
容器 debug
GET/POST /docker_modelview/api/debug/<docker_id>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| docker_id | path | int | Docker 记录 ID |
响应: 302 重定向到 Pod 命令行界面
说明: 创建一个 debug Pod(sleep 2h),等待最多 40 秒进入 Running 状态后跳转到终端界面。
清理调试镜像 Pod
GET/POST /docker_modelview/api/delete_pod/<docker_id>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| docker_id | path | int | Docker 记录 ID |
响应: 302 重定向到 Docker 列表
保存调试镜像
GET/POST /docker_modelview/api/save/<docker_id>
| 参数 | 位置 | 类型 | 说明 |
|---|---|---|---|
| docker_id | path | int | Docker 记录 ID |
响应: 302 重定向到提交日志页面
说明: 对运行中的 debug 容器执行 docker commit && docker push,保存并推送镜像。
创建在线调试镜像(入口)
GET/DELETE /docker_modelview/api/entry/docker
响应: 302 重定向到 Docker 创建界面