LDUOJ从1.x升级到2.x
升级说明
2.x最大的变化就是更换了判题服务。放弃了自带的判题内核(停止维护),采用开源go-judge作为新的判题服务。
主要影响
- 支持更多编程语言及版本,对于C/C++可自定义是否开启O2优化。
- 判题服务更稳定,不必再担心莫名其妙的运行崩溃、编译错误等。
- 提交代码后可以看到所有测试点的评测情况。其中acm模式下,遇到测试点无法通过时立即停止评测。
- 2.0版本暂不支持代码查重,预计2.1版本加入,以releases为准。
升级教程
此次升级的原理是将docker-compose.yml
、lduoj.conf
替换为2.x版本。
0. 备份(强烈建议)
请参考备份。
1. 停止服务(务必)
cd OnlineJudge/ # 安装oj的位置
sudo docker compose down
2. 备份老版本配置文件(可跳过)
mkdir old
mv docker-compose.yml old/
mv lduoj.conf old/
3. 获取2.x版本的配置文件(docker-compose.yml
,lduoj.conf
)替换现有的
git clone -b deploy2 https://github.com/winterant/OnlineJudge.git
mv -f OnlineJudge/* ./ # 将下载好的配置文件移动到当前oj安装目录
rm -rf OnlineJudge/ # 删除无用的文件夹
4. 启动服务
sudo docker compose up -d
现在,可以使用浏览器访问网站了(docker-compose.yml
中默认的端口号是8080,如有需要请自行更改)。
5. 修改配置lduoj.conf
(自行决定,按需修改)
根据个人需要,自行修改配置项。例如你以前配置过系统邮箱,则需要重新填一下邮箱信息。
实际上,2.x相对于1.x只是增加了以下配置:
# Database for laravel. 不要改
DB_CONNECTION=mysql
DB_HOST=${MYSQL_HOST}
DB_PORT=${MYSQL_PORT}
DB_DATABASE=${MYSQL_DATABASE}
DB_USERNAME=${MYSQL_USER}
DB_PASSWORD=${MYSQL_PASSWORD}
################## Judge Config ##################
# go-judge server. 不要改
JUDGE_SERVER=go-judge:5050
# Number of parallel judge processes.(不建议改太大)
# Default: (CPU数量 + 1)/2
JUDGE_MAX_RUNNING=