CodeCombat

CodeCombat

简介

本地部署

Docker部署

1. 拉取codecombat Docker映像

打开终端, 在其中输入如下指令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 拉取codecombat镜像
$ docker pull operepo/ope-codecombat

# pull下载完后,可以查看镜像
$ docker images

# 启动镜像
$ docker run -itd --name mycodecombat -p 0.0.0.0:3020:3000 operepo/ope-codecombat /bin/bash


2. 下载需要的数据包

没有这个数据包,会无法运行。 下载地址(别人分享的): https://cloud.189.cn/t/IJzmuqz2u673 (访问码:c1wi)

codecombat目录下有个:dump.tar.gz,就下载这个。

3. 启动容器内mongodb服务

1
2
3
4
5
6
# 1).进入容器
docker exec -it mycodecombat /bin/bash

# 2).容器内开启数据库服务(不要关闭窗口)
cd /home/coco/codecombat && ./bin/coco-mongodb

4. 导入dump.tar.gz数据

打开另一个终端,进入放dump.tar.gz数据压缩包的目录,

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 1).把数据包dump.tar.gz复制到容器内
$ docker cp dump.tar.gz mycodecombat:/home/coco/codecombat/data/
# 2).进入容器
$ docker exec -it mycodecombat /bin/bash
# 3).进入放数据的data目录
[docker]$ cd /home/coco/codecombat/data/
# 3).解压
[docker]$ tar -zxvf dump.tar.gz

# 启动容器内web服务
[docker]$ cd /home/coco && sh start.sh

6. 开启账号上帝模式

1
2
3
4
5
6
7
8
# 1).进入容器
docker exec -it mycodecombat /bin/bash
# 2).打开数据库
mongo
# 3).使用cocoo数据库
use coco
# 4).将abccba账号升级为“上帝模式”,这里abccba为你自己注册时候用的名字
db.users.update({'name':'abccba'},{$set:{'earned.gems':9999999,permissions:["godmode","admin"]}},true,false);
  1. 修改密码
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 1).进入容器
docker exec -it mycodecombat /bin/bash
# 2).打开数据库
mongo
# 3).使用cocoo数据库
use coco
# 4).查看用户abccba密码
db.users.find({name: 'abccba'}, {name: 1, passwordHash: 1})
# 5).查看用户所有信息
db.users.find({name: 'abccba'})
# 6).修改用户abccba密码
db.users.updateOne({name: 'abccba'}, {$set: {passwordHash: '977aa9a1ce6a580116484f227cca6ded1d82f37987c22121748ff1625640a4623c52e0f420420d15bb89ae680e3f27cb5d7d92d1a2c738fae5d753d66c94c9e8'}})

参考

  1. https://www.hduzn.cn/2022/10/25/Docker%E6%90%AD%E5%BB%BAcodecombat%E6%9C%AC%E5%9C%B0%E6%9C%8D%E5%8A%A1/
updatedupdated2024-11-232024-11-23