Ryan's WorkSpace
  • 首页
  • 关于我
  1. 首页
  2. C++
  3. 正文

快速部署CUP Online Judge判题机

2020年03月10日 1325点热度 0人点赞 0条评论

内容纲要

经过进一步的打磨,CUP Online Judge的判题机终于独立于前后端,可以作为一个后台服务在系统运行了。

考虑到判题过程强依赖操作系统环境,因此整个过程我也打了docker-compose包,不想看下面冗长的部署内容,直接使用的可以前往CUP Online Judge NG Docker Judger体验懒人部署的快感。

系统要求

  • Ubuntu 16.04 or above
  • X86_64 CPU
  • Node.js v10 or above

环境要求

  • 预先准备好数据文件夹

部署

  1. 拉取后台服务代码:
$ git clone https://github.com/ryanlee2014/CUP-Online-Judge-Judge-Daemon-Service.git judge-daemon
  1. 安装依赖
$ cd judge-daemon && npm install
  1. 编译
$ npm run build
  1. 拉取判题机代码
$ cd ../
$ git clone https://github.com/ryanlee2014/CUP-Online-Judge-Judger.git judger
  1. 运行安装脚本
$ cd judger && ./build.sh

对于CentOS用户,请自行安装脚本中给出的依赖

  1. 拷贝wsjudged到后台服务的目录下, 并添加执行权限
$ chmod +x wsjudged
$ cp wsjudged ../judge-daemon
  1. 填写数据库信息
$ cd /home/judge/etc
$ #edit judge.conf

7.1 judge.conf内容说明

OJ_HOST_NAME=//数据库地址
OJ_USER_NAME=//数据库账号
OJ_PASSWORD=//数据库密码
  1. 启动服务
$ # go to judge-daemon
$ npm start

后台程序将暴露5110端口和后端交互。


若出现端口冲突,请更改config.json文件中"port"字段为其他可用端口。

若未了解程序交互逻辑与判题机内部结构,请不要改动除第一个端口以外的端口。

你看这么长的部署过程多麻烦,坑还多,不如用docker-compose方便
所以想用的就会最上面去下docker版吧

既然这么麻烦,为什么不直接用docker版呢?

由于docker版不支持使用共享内存作为判题暂存空间,因此性能会有一定损失。

对判题速度及其敏感的用户建议用非docker版,否则就使用自行部署的版本

相关

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: C++ JavaScript Node.js Ubuntu
最后更新:2020年03月10日

Ryan Lee

如果帮助到你,请点击广告,谢谢!

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

如果帮助到你,请点击广告,谢谢!

用户您好!请先登录!
登录 注册
Social Media
Github: ryanlee2014
标签聚合
Apache php Java C++ C JavaScript hustoj GitHub
友链
Pacolyon
Lucien's blog
Slian's DreamWork
卡拉搜索
  • 0
  • 15,313
  • 5,553
  • 0
广告

COPYRIGHT © 2020 Ryan's WorkSpace. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

登录
注册|忘记密码?