UOJ

部署

首先执行

sudo su

进入 root

然后执行

curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh

安装 docker

接着执行

sudo systemctl start docker

启动 docker 服务

然后执行

sudo docker --version

若 docker 正常,会输出形如如下的版本号

Docker version 20.10.21, build baeda1f

执行如下内容来安装 docker 加速器

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

 "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

执行如下内容拉取镜像并启动 UOJ 服务

sudo docker pull universaloj/uoj-system

sudo docker run --name uoj -dit -p 80:80 --cap-add SYS_PTRACE universaloj/uoj-system

接下来,UOJ将在后台运行。 上面的代码是用于新建一个 UOJ 容器,重启服务器后不要使用

docker run

来启动容器。 如果您不希望用80端口来运行UOJ,您可以把上面的 -p 80:80 改成 -p 你要的端口:80 。

稍等大约半个小时(视网络情况而定),访问服务器的地址,您现在应该能看到UOJ正在运行了。

您注册的第一个用户将被自动设为管理员。

容器维护

docker容器很容易维护。您只需要掌握以下命令:

docker start uoj                # 启动 uoj 容器

docker stop uoj                 # 暂停 uoj 容器

docker restart uoj              # 重启 uoj 容器

docker exec -it uoj /bin/bash   # 进入 uoj 容器的终端

docker commit uoj uoj_back:tag  # 将 uoj 容器保存为标签为 tag 的 uoj_back 镜像

docker ps -a                    # 查看所有的容器

docker images                   # 查看所有的镜像

docker rm uoj                   # 删除 uoj 容器(慎用)

docker rmi uoj_back:tag         # 删除标签为 tag 的 uoj_back 镜像

在docker中,每个容器需要基于一个镜像来运行。最开始,我们的 uoj 容器是基于安装过程中构建的镜像。

下面是一次典型的数据恢复:

docker commit uoj uoj_back:20170101     # 例行备份

docker commit uoj uoj_back:20170201     # 例行备份

docker commit uoj uoj_back:20170301     # 例行备份

# 3月15日,黑恶势力破坏了 uoj,uoj 容器已经无用,必须恢复

docker stop uoj

docker rm uoj                           # 删除uoj容器

docker run --name uoj -dit -p 80:80 --cap-add SYS_PTRACE uoj_back:20170301

# 创建新的 uoj 容器,使用3月1日的备份

数据迁移

下面的命令可以把 uoj_back 这个容器导出为 uoj.tar 这个文件:

docker save -o uoj.tar uoj_back

把 uoj.tar 复制到其他机器上,然后可以运行下面的命令导入 uoj_back 镜像:

docker load --input uoj.tar

下面是一次典型的数据迁移:

# 服务器 A:

docker commit uoj uoj_back              # 把uoj容器存储为镜像

docker save -o uoj.tar uoj_back         # 把uoj_back镜像导出

# 然后通过某些恶毒的手段把 uoj.tar 拷到服务器 B

# 服务器 B:

docker load --input uoj.tar             # 导入uoj_back镜像

docker run --name uoj -dit -p 80:80 --cap-add SYS_PTRACE uoj_back

# 建立 uoj 容器,基于之前服务器 A 的数据,迁移完成

管理员账户

按照套路,UOJ 安装完成后,注册的第一个账户会被自动设为管理员账户。

当您以管理员账户登录 UOJ 后,您就可以依次点击页面右上角 您的用户名 、 系统管理 来进入管理界面。

管理员账户有发布公告、新建题目和比赛等权限。但是,管理员并不能参加比赛。

发布公告

UOJ 发布公告的套路比较神奇,请您仔细阅读这一段。

首先,请您将您的公告发布到您的博客当中,然后再这篇博客的地址中(形如 .../blog/478 )找到最 后的一串数字,记作博客 id。

之后,请您打开管理界面,使用博客 id 添加公告。 您可以置顶公告,需要注意的是,1 表示优先级最低(显示为“三级置顶”),3 表示优先级最高(显示为“一级置顶”)。

好了,差不多就到这里了,如果想要修改全局配置文件的私聊我

需要代部署服务(收小额费用)的也可以私聊我

全局配置文件中包含了网站的基础信息

相关文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。