codecombat(Ubuntu环境详细docker部署教程)

发布于:2025-09-02 ⋅ 阅读:(19) ⋅ 点赞:(0)

目录

一、打开Ubuntu环境

1.安装压缩包

方法一:拖动式传输文件本地到Ubuntu

方法二:如果不能拖动,也不用着急,用另一种方法。

二、开始解压该文件

三、下载docker部署

四、部署文件包

五、部署docker并查看效果

六、开机自启动


一、打开Ubuntu环境

我用夸克网盘给你分享了「codecombat.zip」,点击链接或复制整段内容,打开「夸克APP」即可获取。(本文章个人项目部署练手,不要触犯法律责任)
/~e71e382pF1~:/
链接:https://pan.quark.cn/s/b44d80b9ba30

1.安装压缩包

安装codecombat的LINUX部署压缩包,可以放在桌面上。

然后进入Ubuntu系统,安装VMware tools

# 更新软件源 sudo apt update

下面两种方式自选:

# 安装适用于桌面版的工具 sudo apt install open-vm-tools-desktop

# 若是服务器版(无图形界面) sudo apt install open-vm-tools

# 重启生效 sudo reboot

# 检查是否安装了桌面版工具
dpkg -l | grep open-vm-tools-desktop

方法一:拖动式传输文件本地到Ubuntu

重启虚拟机,然后进入设置打开共享文件夹。

低版本改了下面这个还是可以托揣文件的,高版本24+的不行。

打开终端切换到root用户sudo su

进入这个目录 cd /etc/gdm3 展开ls 安装vim:sudo apt install vim

编写这个文件:vim custom.conf

找到这个参数

按i修改,把前面的#删掉,然后按Esc键,输入:x保存退出。

输入reboot重启,重启之后,进入主目录,新建一个文件夹code。

然后把刚下的本地包拉进去。(高版本Ubuntu行不通)

高版本用共享文件,在设置把本地要共享的文件夹位置,选中。

启用那个添加

重启一下就有了。然后移动到code文件夹内。

方法二:如果不能拖动,也不用着急,用另一种方法。

同样的在本地创建共享文件夹,然后在vm里面设置到Linux的共享文件夹。

第二步打开Ubuntu,然后找到文件夹。左边最底下那个其它位置,然后点Ubuntu,找配置文件。

这个位置mnt/hgfs,最开始没设置,正常情况都是显示空文件夹。

然后打开终端输入sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

这是特殊情况:如果没有这个文件夹那输入sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt -o allow_other(正常情况不用管这一步)

就会显示本地共享文件。

二、开始解压该文件

Ubuntu的硬盘要大一点,至少100g

把文件夹复制到桌面上面:sudo chmod -R 777 /mnt/hgfs/vm_share

然后进入该文件夹:cd ~/桌面/codecombat

开始解压文件:unzip codecombat.zip

要里面两个子文件压缩包。

三、下载docker部署

下载:sudo apt install docker.io

导入镜像:sudo docker load < codecombat.tar

创建数据目录:sudo mkdir ~/桌面/codecombat/codecombat/{data,mongo} -pv

四、部署文件包

创建Ubuntu本地文件夹

然后删除data里面的第一个空文件夹。

把这个0字节的dump.tar.gz缓存删掉:sudo rm -rf dump.tar.gz

然后把下载的压缩包下载到这里来:

解压项目:sudo tar -zxvf dump.tar.gz

停止正在运行的容器:sudo docker stop $(sudo docker ps -q)

删除所有已停止的容器:sudo docker rm $(sudo docker ps -aq)

查看现在存在的容器(应为空):sudo docker ps

五、部署docker并查看效果

运行容器:sudo docker run -id \
-v ~/桌面/codecombat/codecombat/data:/home/coco/codecombat/data \
-v ~/桌面/codecombat/codecombat/mongo:/home/coco/codecombat/mongo \
-p 9485:9485 \
-p 13000:3000 \
operepo/ope-codecombat:latest

# 查看正在运行的容器(包含 ID)
sudo docker ps

sudo docker restart (实际ID)

访问服务器端口http://localhost:13000

注册独立账号。

然后查看服务器后台:sudo docker exec -it (实际容器ID) bash

mongo相当于数据库
更改数据内容:use coco 

输入:记得把admin更改为自己的刚注册的用户名。

db.users.update({'name':'admin'},{$set:{'earned.gems':9999999, permissions:["godmode","admin"]}},true,false);

进网站刷新,所有都显示了。

六、开机自启动

最后设置开机自启动:

sudo nano /etc/systemd/system/codecombat.service

步骤 1:创建 systemd 服务文件
执行以下命令创建服务配置文件:sudo nano /etc/systemd/system/codecombat.service
步骤 2:写入配置内容
在打开的编辑器中,粘贴以下内容(直接使用你的容器 ID 和名称):
[Unit]
Description=CodeCombat Docker 容器自启动服务
Requires=docker.service
After=docker.service

[Service]
Type=oneshot
RemainAfterExit=yes
# 启动容器(同时指定 ID 和名称,确保准确性)
ExecStart=/usr/bin/docker start 容器id 容器名称
# 停止容器
ExecStop=/usr/bin/docker stop 容器id 容器名称
# 服务异常时自动重启
Restart=on-failure

[Install]
WantedBy=multi-user.target
步骤 3:保存并退出编辑器
按下 Ctrl + X(退出)
输入 Y(确认保存)
按下 Enter(使用默认文件名)
步骤 4:启用并启动服务
重新加载 systemd 配置,让新服务生效:
sudo systemctl daemon-reload

启用开机自启动:
sudo systemctl enable codecombat.service

手动启动服务(验证是否正常工作):
sudo systemctl start codecombat.service
步骤 5:验证配置是否成功
查看服务状态:
sudo systemctl status codecombat.service


网站公告

今日签到

点亮在社区的每一天
去签到