官方教程地址:
https://hub.docker.com/r/domjudge/domserver
安装docker
ubuntu下直接运行
sudo apt install curl
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
使用以下指令启用docker
sudo systemctl enable docker
sudo systemctl start docker
国内镜像加速
sudo vim /etc/docker/daemon.json
并添加下述内容
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
安装MariaDB
docker run -it --name dj-mariadb -e MYSQL_ROOT_PASSWORD=rootpw -e MYSQL_USER=domjudge -e MYSQL_PASSWORD=djpw -e MYSQL_DATABASE=domjudge -p 13306:3306 mariadb --max-connections=1000
其中密码等参数都可以修改,不过没必要,我们直接复制粘贴。
安装DomServer
docker run -v /sys/fs/cgroup:/sys/fs/cgroup:ro --link dj-mariadb:mariadb -it -e MYSQL_HOST=mariadb -e MYSQL_USER=domjudge -e MYSQL_DATABASE=domjudge -e MYSQL_PASSWORD=djpw -e MYSQL_ROOT_PASSWORD=rootpw -p 12345:80 --name domserver domjudge/domserver:latest
这里将地址绑定为12345可以改成其他的,如直接用80端口访问。
跑完之后可以直接访问http://localhost:12345/,,不要忘了开放12345端口。
然后可以用admin帐号登录,不过密码好像已经不是以前的admin了,在部署完domserver后会有显示,不过没看到也没关系,我们可以通过下列文件查看
docker exec -it domserver cat /opt/domjudge/domserver/etc/initial_admin_password.secret
然后就登录后就可以改密码了。
安装DomJudge
安装完有个提示说需要在/etc/default/grub
中的GRUB_CMDLINE_LINUX
参数中添加一段内容cgroup_enable=memory swapaccount=1
。
于是我们可以先添加,添加完如下图所示:
然后还是直接复制粘贴
docker run -it --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro --name judgehost-0 --link domserver:domserver --hostname judgedaemon-0 -e DAEMON_ID=0 domjudge/judgehost:latest
最后需要在domjudge中修改user
中的judgehost
的密码为password
,也就是下图所示的judgehost的密码。
然后就可以在domjudge中看到当前的judgehost了。