ZHYCarge的博客

旧平台,已不再维护,请点击下方链接转至新平台访问

0%

青岛OJ系统的搭建

前言

实验室招新使用,想搭建一个属于实验室专属的OJ界面,方便进行管理以及相关统计。

使用青岛大学的OJ系统进行搭建,相关github界面

请注意:此OJ并不支持arm架构,因此需要在arm架构机器上使用的需要自行去寻找其他的OJ界面

相关资料引用

qduoj前端二次开发简略流程

OJ官网

OJ二次开发官网

配置过程

先配置基本环境

1.sudo apt-get update && sudo apt-get install -y vim python3-pip curl git

2.pip3 install --upgrade pip

3.pip3 install docker-compose

  • 第3步的安装与github的官方教程不同,由于该项目需要python3.5以上的支持,而pip仅支持python2.7(至少在我的配置下是这样),因此安装使用pip3来进行安装
  • 在fish下,&&命令无法被识别,因此需要提前切换到bash来进行安装

配置安装docker环境

使用如下一键安装命令来进行docker的安装

  • 在国内环境下:

sudo curl -sSL https://get.daocloud.io/docker | sh

  • 在国外环境下:

sudo curl -sSL get.docker.com | sh

如需了解更多,请访问Docker官网

开始安装OJ系统

  1. 选择一个具有合适的空间来进行安装(大概700-800mb)

输入如下命令:

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

  1. 输入如下命令去进行自动配置docker-compose up -d

配置会根据网速来进行协调,大概会在15-30min,之后会自动配置成功

  • 请不要占用服务器或者主机的80端口以及443端口,网站会直接占用,否则会启动失败
  1. 在浏览器中输入相关ip便可以直接访问成功

如何更改OJ的端口号

在进行第二步之前,进入到OJ的文件夹中,编辑docker-compose.yml尾部的ports的选项,例如将端口改为90

image

后期的OJ配置

因为一上来的OJ环境并不是那么可以让人使用的了,因此需要额外进行一些环境上的配置

基础(这是后期的基础,因此都需要进行配置)

请注意:安装时也需要配置nodejs的 v8.12.0的安装包,如果没有请自行寻找方式进行安装

  1. 由于此OJ系统前端都是自动渲染生成的,因此我们需要去Github上下载相关的前端源码

git clone https://github.com/QingdaoU/OnlineJudgeFE.git

  1. 安装修改的相关依赖

然后我们进入到clone的文件夹中,执行npm install

  1. 之后按照官方的文档进行编辑

npm run build:dll

  1. 启动本地测试

npm run dev

  1. 后续修改完成之后进行打包

npm run build

  1. 让OJ加载修改后的前端文件

首先我们需要进入到OJ的那个文件夹下,编辑其docker-compose.yml

然后在columes选项中新增加一行,路径请根据实际进行自主修改

image

  1. 之后运行自动配置命令docker-compose up -d
  • 可能在运行之后,会发现界面打不开的现象,那么便重新启动一下OJ系统所对应的docker服务便好

将语言更换为中文

进入前端代码文件夹中,从src/i18n/index.js中修改locale的值为zh-CN,之后直接按照上面的内容打包即可

-------------我也是有底线的哦如需更多,欢迎打赏-------------