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

相关推荐
1***y1789 小时前
DevOps在云中的Rancher
运维·rancher·devops
tianyuanwo9 小时前
多平台容器化RPM构建流水线全指南:Fedora、CentOS与Anolis OS
linux·运维·容器·centos·rpm
wasp52010 小时前
做了技术管理后,我发现技术和管理其实可以兼得
java·运维·网络
云和数据.ChenGuang10 小时前
mysqld.service is not a native service问题解决!
运维·nginx·运维技术·运维工程师技术
写代码的学渣11 小时前
ubuntu 22.04 新装的系统 xshell 连不上
linux·运维·ubuntu
2501_9418059311 小时前
深入解析现代多语言后端架构设计:Python、Java、C++与Go在高性能服务中的实践
运维
F***E23911 小时前
如何安装配置Goland并使用固定公网地址SSH远程连接本地服务器
运维·服务器·ssh
序属秋秋秋11 小时前
《Linux系统编程之进程环境》【环境变量】
linux·运维·服务器·c语言·c++·操作系统·系统编程
云边有个稻草人12 小时前
手机也能控 Linux?Cpolar+JuiceSSH 搞定内网远程
运维·服务器·cpolar
Altair123112 小时前
nginx的https的搭建
运维·网络·nginx·云计算