オンラインジャッジとはプログラミングの問題をオンラインで採点するシステム。競技プログラミングや教育にも使われています。日本ではAizu Online Judgeが有名ですね。
2年前からOnline Judgeサーバーを立ててプログラミングの授業で運用しているので、本記事はそのメモ的な記事です。2年前にオンラインジャッジのオープンソース版をいろいろ探していましたが、その当時はなかなか良いものがなく、最終的に中国の青島大学が開発しているオープンソースOnlineJudge2.0を行きつきました。ライセンスはMIT。Dockerを使っているのでインストールはとても簡単です。
なお、オープンソースとはいえ、私自身がソースコードを全て読んだわけではないので、セキュリティを保証するものではありません。このソフトを使い生じたあらゆる損害等を補償できません。あくまで、自己責任でお使いください。私はファイアウォール内で授業期間だけ運用しています。
- 参考サイト
- Github: OnlineJudge 2.0
- ドキュメント:https://docs.onlinejudge.me/
- 準備
- サーバー用のLinux PC (ubuntu 18.04)を準備
- 学内用の固定IPをもらう
- インストール(Linux)
- 以下の作業は学内のファイアウォール内だと何故か失敗するので、インストール作業は学外ネットワークで実施すること。
- 依存関係のインストール
$ sudo apt-get update && sudo apt-get install -y vim python3-pip curl git
$ pip3 install --upgrade
$ pip install docker-compose
- Dockerのインストール
$ sudo curl -sSL get.docker.com | sh
- OnlineJudgeのインストール
$ cd
$ mkdir src
$ cd src
$ git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git && cd OnlineJudgeDeploy
- サービス開始
- 次のコマンドを実行するだけ。各種ファイルのダウンロードに少し時間がかかる。私の環境で10分程度かかった。
$ docker-compose up -d
- 次のコマンドを実行するだけ。各種ファイルのダウンロードに少し時間がかかる。私の環境で10分程度かかった。
終わり
コメント