CodeCombat 容器部署笔记
CodeCombat 容器部署笔记
CodeCombat 是一款将编程教育与角色扮演玩法相结合的在线学习平台。用户通过编写代码控制游戏角色完成冒险任务,从而训练编程技能。 平台支持 Python、JavaScript、Lua 等多种语言学习路径,采用渐进式关卡设计,覆盖从基础语法到算法应用的完整知识体系。 通过宝石奖励、角色装备、多人协作等游戏化机制降低学习门槛,核心教学关卡免费开放。截至 2023 年,CodeCombat 已推出中国版(极客战记)与国际版双通道服务。
背景动机
偶然想系统学习 Python,但因缺乏编程基础,希望借助趣味性强的学习方式入门。了解到 CodeCombat 这款编程游戏,但官网完整版需付费(数百元),经济受限,遂寻找开源方案。
最终在 GitHub 找到官方开源项目: 🔗 CodeCombat/CodeCombat:学习编程的游戏。
并参考社区教程成功实现本地容器化部署。
部署步骤
1. 安装 Docker(略)
确保 Linux 系统已安装 Docker。此处不再赘述安装过程。
2. 配置 Docker 镜像加速器
为提升国内拉取镜像速度,配置以下镜像源:
sudo mkdir -p /etc/docker && sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
}
EOF
# 重启 Docker 服务使配置生效
sudo systemctl restart docker
拉取 CodeCombat 镜像:
docker pull operepo/ope-codecombat
验证镜像是否下载成功:
docker images
创建所需数据目录:
mkdir -p /data/codecombat/{data,mongo}-pv
运行容器:
docker run -id \
-v /data/codecombat/data:/home/coco/codecombat/data \
-v /data/codecombat/mongo:/home/coco/codecombat/mongo \
-p 9485:9485 \
-p 3000:3000 \
operepo/ope-codecombat:latest
3. 导入游戏资源包
⚠️ 注意:需提前准备
dump.tar.gz资源包(通常包含关卡、用户数据等)。
# 进入宿主机数据目录
cd /data/codecombat/data
# 删除容器初始化生成的空文件(如有)
rm -f dump.tar.gz
# 将你的 dump.tar.gz 放入此目录,并解压
tar -zxvf dump.tar.gz
4. 重启容器并访问
# 替换为你的实际容器 ID
docker restart 06edb670d460
访问 Web 界面:
http://<你的服务器IP>:3000
💡 提示:部分 HTML 关卡需通过
localhost访问才能正常加载,建议在本机运行 Docker 或使用端口转发。
注册账号(例如:admin)。
5. 提升账号权限(解锁全部关卡)
docker exec -it 06edb670d460 bash
连接 MongoDB:
mongo
切换数据库并提权:
use coco
// 将 'admin' 替换为你注册的用户名
db.users.update(
{'name': 'admin'},
{
$set: {
'earned.gems': 9999999,
permissions: ["godmode", "admin"]
}
},
true, // upsert
false // multi
);
执行完成后,该账号即拥有“上帝模式”权限,可自由游玩所有关卡。
总结
✅ 至此,CodeCombat 本地私有化部署完成!

CodeCombat 是一款将编程教育与角色扮演玩法相结合的在线学习平台。用户通过编写代码控制游戏角色完成冒险任务,从而训练编程技能。 平台支持 Python、JavaScript、Lua 等多种语言学习路径,采用渐进式关卡设计,覆盖从基础语法到算法应用的完整知识体系。 通过宝石奖励、角色装备、多人协作等游戏化机制降低学习门槛,核心教学关卡免费开放。截至 2023 年,CodeCombat 已推出中国版(极客战记)与国际版双通道服务。
浙公网安备 33010602011771号