Open edX docker生产环境
文章目录
我相信open edx的容器化将对它的生态扩张,起到极大的推动作用,这种推动作用连同前后端分离,将成为open edx近来最重要的两大进展。关于open edx的这些重大调整,我们将在8月18日(下周末)北京的线下活动:Beijing Open edX Meetup 2018#1 中讨论
open edx容器化相关的谈论,我写在Open edX的容器化之路里
本文中我们将使用docker来安装Open edX的最新稳定版本:hawthorn.1
, 用作生产环境
本文可以视使用regisb的openedx-docker项目的实践笔记
实验环境
- 阿里云 香港节点
- 2核/16G
- ubuntu16.04
依赖
- 安装docker
sudo gpasswd -a ${USER} docker
- 安装
docker-compose
:
|
|
开始安装
|
|
一个小时左右,一切就绪! all in one!
ps: 目前的论坛还有些问题,我已经在issue里报告了这个错误,regisb回复说:
It should be fixed in the next version of the docker image, which will be built in a few minutes.
regisb在持续推进这个项目,大家可以放心
2018.8.14更新
@regisb 在最近的提交里已经Fix forum access error
深入
openedx-docker同时支持生产模式和开发模式。
如果你熟悉open edx和docker,稍微读一下openedx-docker的readme,就可以开始正常的开发了
作者非常老司机,项目干净利落, 可读性极好,清澈见底,没隐藏任何魔法的东西。所有的东西基本走在:Makefile和docker-compose.yml写清楚了
关于组件化的思考
如果我们需要实现类似eduNEXT/appsembler的自主建站功能(SAAS),该怎么做呢
用户在页面上选择一些需要的功能,之后就会生成一个需要的定制版Open edX实例
我目前的想法是,用户在前端操作,本质是填写表单,选择他需要的功能列表(lms&cms,insight,ecommerce),提交之后,这些选择会自动生成一个声明性的文件,诸如docker-compose.yml
,之后根据这个文件启动服务
将edx切割为不同的组件,openedx-docker已经做了,尤为可贵的是,它也演示了如何通过参数影响实例,表现在UI上,就是允许用户勾选表单来定制实例
往实例中传递定制化数据的方式有几种,openedx-docker使用了
当然如果我们要支持多用户,我们还需要将其部署到K8S上,可以使用kompose来将docker-compose.yml转化为K8S可用的文件
另一个思路是使用表单数据影响edx的配置文件(aws.py/json)
todo
本周末我将试着将Open edX部署到K8S,探索如何使用Open edX构建SAAS平台
tips
添加平台超级用户
USERNAME=edx EMAIL=edx@example.com make create-staff-user
https
https://github.com/regisb/openedx-docker/issues/46 https的问题
参考
文章作者 种瓜
上次更新 2018-08-10