本项目是为MSSCTF修改的CTFd的附属项目
用于评测ACM题目
此分支(local_file)用于与CTFd一同启动。
由于master分支需要从CTFd将评测数据下载到JudgeServer,有点慢,所以干脆把CTFd的upload目录也映射到JudgeServer的container里头来,直接读取就行了。
注意docker-compose.yml的不同
支持C++, Java, Python2/3 四种语言的评测
评测参数在worker.json中配置。
以C++为例,配置项分别为:
docker run -p {port}:5000 frankli0324/judge_server \
--env JUDGE_BASEDIR=/opt/judger \
--env JUDGE_TOKEN=your_token \
--env DATABASE_URL=mysql+pymysql://username:password@$DB_URL/judge \
-v {CTFd文件上传目录,默认是.data/CTFd/upload}:/opt/data与魔改CTFd一同通过docker-compose启动:
services:
ctfd:
environment:
- JUDGE_ADDR=judger
- JUDGE_PORT=5000
...
judger:
image: frankli0324/judge_server
restart: always
environment:
- JUDGE_BASEDIR=/opt/judger
- JUDGE_TOKEN=your_token
- DATABASE_URL=mysql+pymysql://username:password@db/judge
volumes:
- .data/CTFd/uploads:/opt/data # IMPORTANT!!
db:
image: mariadb
...docker-compose up