青岛OJ(QingdaoU/OnlineJudge)的安装(0)

原文链接:这里
0.前言

OJ(OnlineJudge)是在线判题系统,很多学校或者机构打比赛都有自己的OJ系统。QingdaoU这个OJ是最新开发的一个OJ系统,界面比较好

官方文档:https://docs.onlinejudge.me/#/onlinejudge/guide/deploy

github: https://github.com/QingdaoU/OnlineJudge

官方DEMO: https://qduoj.com/

官方QQ群:496710125

本文环境:centos7.7 + 宝塔面板7.3

1.环境安装

官方设置了一键安装(docker下),centos(宝塔)安装docker请点这。

但是需要一些程序

docker-compose(安装这个需要pip)
vim
git
curl

我们使用宝塔面板后面三个都已经存在。只有docker-compose需要安装,安装docker-compose需要pip,所以我们想办法先安装pip。

centos下安装pip,需要使用如下指令。

yum -y install epel-release
yum -y install python-pip

然后升级一下pip

pip install --upgrade pip

有了pip之后,我们就要按照docker-compose,我们输入

pip install docker-compose

等待大概几分钟就安装完毕了。但是安装的过程中发现上面的指令可能会报错,可能是源的问题,那么我们可以用下面的指令。

 pip install docker-compose -i https://pypi.douban.com/simple

输入docker-compose version 查看版本信息。

青岛OJ(QingdaoU/OnlineJudge)的安装(0)


2.一键安装

在服务器上新建一个文件夹,用来存储我们的OJ系统。我们在WWW文件下新建一个文件夹“QDOJ”

然后我们cd到QDOJ这个文件夹,在这个文件夹下输入下面的指令。

git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git && cd OnlineJudgeDeploy

我们可以看到一键安装的文件已经下载完了。

青岛OJ(QingdaoU/OnlineJudge)的安装(0)

然后在输入下面的指令

docker-compose up -d

开始拉取docker镜像

青岛OJ(QingdaoU/OnlineJudge)的安装(0)

如果pull的速度慢,考虑要换源,换源的方式在文章开头的centos安装docker里。经过实测,更换源之后的速度很快。


如果有下面报错,说明端口被占用,有两种方法解决。

for oj-backend Cannot start service oj-backend: driver failed programming external connectivity on endpoint oj-backend (4d304660a0329643bb3bf1e63519dff3dc65fe8bbbb00a9c5a38f0ebe4ac76c7): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use

第一种方法:把本机Centos 中的占用80端口的程序停掉

第二种就是修改docker-compose.yml文件,这种方法我们会在后面的文章中详细解释。

本文选取的是第一种方法。先停掉本机的占用80端口的程序,在宝塔中由于我安装了nginx所以一直占用80端口,那么就先把nginx停掉。然后重启docker中的oj-backend容器

青岛OJ(QingdaoU/OnlineJudge)的安装(0)青岛OJ(QingdaoU/OnlineJudge)的安装(0)

我们访问虚拟机的IP,看到一下界面表示成功。

青岛OJ(QingdaoU/OnlineJudge)的安装(0)

3.后台登录

我们登录登录后台( 你的IP地址/admin)

1 http://192.168.0.109/admin

用户名:root
密码:rootroot

青岛OJ(QingdaoU/OnlineJudge)的安装(0)青岛OJ(QingdaoU/OnlineJudge)的安装(0)

这样就表示登录成功了。但是还是有一些问题,比如是中文的,这些问题在下面几篇文章中详说。

上一篇:Docker compose学习


下一篇:Jetpack Compose 1,字节跳动技术整理