首页
/ Educates培训平台:高效开发工作坊内容的最佳实践

Educates培训平台:高效开发工作坊内容的最佳实践

2025-06-19 12:48:28作者:韦蓉瑛

工作坊内容开发概述

Educates培训平台是一个强大的Kubernetes原生培训系统,它允许开发者创建交互式技术培训工作坊。在开发工作坊内容时,内容可以打包为OCI镜像、托管在Git仓库或Web服务器上,也可以构建到自定义工作坊镜像中。本文将详细介绍在Educates平台上开发工作坊内容的各种方法和最佳实践。

工作坊内容发布机制

Educates CLI工具简化了工作坊内容的发布流程。当使用该工具创建本地Kubernetes集群时,它会自动部署并链接一个镜像仓库。这个本地仓库可用于存储发布的工作坊内容。

工作坊定义文件中需要包含发布配置,例如:

spec:
  publish:
    image: $(image_repository)/{name}-files:$(workshop_version)
  workshop:
    files:
    - image:
        url: $(image_repository)/{name}-files:$(workshop_version)
      includePaths:
      - /workshop/**
      - /exercises/**
      - /README.md

发布工作坊内容的命令非常简单:

educates publish-workshop

对于远程Kubernetes集群,可以使用远程镜像仓库:

educates publish-workshop --image-repository docker.io/username

本地工作坊镜像构建

Educates平台支持构建自定义工作坊基础镜像。在工作坊定义中指定镜像位置:

spec:
  workshop:
    image: $(image_repository)/{name}-image:$(workshop_version)

本地镜像仓库地址为localhost:5001(从本地机器访问)或registry.default.svc.cluster.local(从集群内部访问)。

开发环境优化配置

禁用保留会话

在开发内容时,建议禁用保留会话功能,确保每次都能获取最新内容:

apiVersion: training.educates.dev/v1beta1
kind: TrainingPortal
metadata:
  name: lab-sample-workshop
spec:
  portal:
    sessions:
      maximum: 1
  workshops:
  - name: lab-sample-workshop
    reserved: 0
    expires: 120m
    orphaned: 15m

错误日志查看

工作坊运行出错时,可以通过两种方式查看日志:

  1. 使用kubectl查看部署日志
  2. 通过工作坊仪表板的嵌入式终端查看$HOME/.local/share/workshop目录下的日志文件

主要日志文件包括:

  • download-workshop.log
  • setup-scripts.log

内容实时更新技术

动态内容更新

对于简单的内容更新,无需重启整个工作坊会话:

update-workshop

此命令会重新下载工作坊内容并执行设置脚本。要刷新当前页面,可以按住Shift键点击仪表板的重载图标。

对于经典渲染器,新增或重命名页面后需要重启渲染器:

restart-workshop

Hugo渲染器则无需此步骤。

内容即时编辑

可以直接在运行的会话中编辑内容文件:

  • 工作坊说明:/opt/workshop/content
  • 设置脚本:/opt/workshop/setup.d

编辑后执行相应命令使更改生效:

  • 重建内容:rebuild-content
  • 重建工作坊:rebuild-workshop

自定义镜像开发策略

镜像标签最佳实践

开发阶段应使用latestmainmasterdevelop标签,确保每次都能拉取最新镜像:

workshop:
  image: ghcr.io/educates/lab-sample-workshop:latest

分层内容架构

建议将工具和内容分离,使用基础镜像+内容覆盖的模式:

workshop:
  image: ghcr.io/educates/custom-environment:latest
  files:
  - image:
      url: ghcr.io/educates/lab-sample-workshop-files:latest

这种架构允许多个工作坊共享相同的基础工具环境。

本地内容代理开发模式

Educates CLI支持从本地系统提供工作坊内容:

educates serve-workshop --patch-workshop

此命令会自动修改工作坊定义,将内容来源指向本地HTTP服务器。也可以手动配置代理设置:

spec:
  workshop:
    enabled: true
    proxy:
      changeOrigin: false
      headers:
      - name: X-Session-Name
        value: $(session_name)
      - name: X-Access-Token
        value: secret-token
      protocol: http
      host: localhost.$(ingress_domain)
      port: 10081

对于远程集群,可以通过网络隧道暴露本地端口。

工作坊定义修改流程

修改工作坊定义的标准流程是:

  1. 删除培训门户实例
  2. 更新集群中的工作坊定义
  3. 重新创建培训门户

通过遵循这些最佳实践,开发者可以高效地在Educates平台上创建和维护高质量的技术培训内容。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
24
7
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
376
3.28 K
flutter_flutterflutter_flutter
暂无简介
Dart
621
140
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
62
19
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.03 K
479
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
647
263
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.1 K
620
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
23
0
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
791
77