当前位置: 首页 > ds >正文

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

目录

一、打开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

http://www.xdnf.cn/news/19518.html

相关文章:

  • 项目-云备份
  • 面试 八股文 经典题目 - HTTPS部分(一)
  • Flink NettyBufferPool
  • 大模型时代:用Redis构建百亿级向量数据库方
  • EtherCAT主站IGH-- 41 -- IGH之sdo_request.h/c文件解析
  • Library cache lock常见案例分析(一)
  • Encoder编码器
  • 图像描述编辑器 (Image Caption Editor)
  • 极客时间AI 全栈开发实战营毕业总结(2025年8月31日)
  • 【Linux基础】深入理解计算机存储:GPT分区表详解
  • 前端组件拆分与管理实战:如何避免 props 地狱,写出高可维护的项目
  • 《Unity Shader入门精要》学习笔记四(高级纹理)
  • ing Data JPA 派生方法 数据操作速查表
  • 【WEB】[BUUCTF] <GXYCTF2019禁止套娃>《php函数的运用》
  • ADC platfrom day65
  • MVC架构模式
  • Blender建模:对于模型布线的一些思考
  • 介绍GSPO:一种革命性的语言模型强化学习算法
  • 现代C++性能陷阱:std::function的成本、异常处理的真实开销
  • Luma 视频生成 API 对接说明
  • AI 智能体汇总,自动执行任务的“真 Agent”
  • 查看所有装在c盘软件的方法
  • Trae接入自有Deepseek模型,不再排队等待
  • OpenStack 03:创建实例
  • 并发编程——11 并发容器(Map、List、Set)实战及其原理分析
  • Opencv的数据结构
  • wifi控制舵机
  • AI热点周报(8.24~8.30):Grok 2.5开源,OpenAI Realtime正式商用,Meta或与OpenAI或Google合作?
  • 从零开始的python学习——语句
  • python pyqt5开发DoIP上位机【自动化测试的逻辑是怎么实现的?】