Skip to main content

DMOJ 저지 서버 설치

이 섹션에서는 DMOJ 저지 서버설치 메뉴얼을 알려드립니다.


관련 파일 다운로드

$ git clone --recursive https://github.com/DMOJ/judge.git

$ cd judge/.docker

$ make judge-tier1

(make 존재 하지 않는 오류가 발생하는 경우 => apt install make)

설정 방법

자신의 웹 사이트 관리자 페이지로 접속 후 좌측 메뉴 언어 -> 채점기 선택 후 추가를 누른다.

채점기

  1. 이름을 지정한다.
  2. 재생성 버튼을 누르면 키 값이 생성되는데 값을 적어 놓는다.
  3. 1 ~ 3 까지 자신이 원하는 저지 서버의 티어를 선택후 저장한다.

자신의 OJ를 설치한 위치로 간다.

📦oj
┣ 📂base
┣ 📂bridged
┣ 📂celery
┣ 📂environment
┣ 📂mathoid
┣ 📂media
┣ 📂nginx
┣ 📂pdfoid
┣ 📂problems
┣ 📂repo
┣ 📂scripts
┣ 📂site
┣ 📂texoid
┣ 📂wsevent
┗ 📜docker-compose.yml

problems 폴더로 이동한다.

problems 폴더 안에 자신이 만든 위에서 생성한 채점기 이름으로 yml 파일을 만들고 저장한다.

ex) judge01.yml

id: <지정한 채점기 이름> ex) judge01
key: <적어 놓은 키값> ex) aaslkfmvasdfl~~~~~
problem_storage_globs:
- /problems/*

폴더를 만들었다면 이제 저지 호스트를 띄운다.

docker run \
--name judge01 \ # 컨테이너 이름
--network="host" \ # 도커 네트워크 설정
-v <자신의 problems 경로>:/problems \ # ex) /home/chosun/docker/oj_docker/oj/problems
--cap-add=SYS_PTRACE \
-d \
--restart=always \
dmoj/judge-tier1 \ # 도커 이미지 이름
run -p 9999 -c /problems/judge01.yml <자신의 설정 IP> -A 0.0.0.0 -a 9111
# /problems/judge01.yml은 자신이 위에서 설정한 yml 파일로 설정한다.
# 자신이 온라인 저지를 띄울때 사용한 IP 혹은 DNS를 적는다.
# 마지막 9111은 PID라고 말하는 곳이 많은데 저지 호스트마다 중복만 아니면 정상 작동한다.