辽源市网站建设_网站建设公司_前端工程师_seo优化
2025/12/27 20:58:03 网站建设 项目流程

CodeCombat 容器部署笔记

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


背景动机

偶然想系统学习 Python,但因缺乏编程基础,希望借助趣味性强的学习方式入门。了解到 CodeCombat 这款编程游戏,但官网完整版需付费(数百元),经济受限,遂寻找开源方案。

最终在 GitHub 找到官方开源项目: 🔗 CodeCombat/CodeCombat:学习编程的游戏。

并参考社区教程成功实现本地容器化部署。

📚 教程来源:(42 条消息) 【极客战记·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 本地私有化部署完成!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询