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

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

2025-06-19 19:52:43作者:韦蓉瑛

工作坊内容开发概述

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平台上创建和维护高质量的技术培训内容。

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

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
260
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
858
507
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
255
299
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
331
1.08 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
397
370
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
21
5