使用docker部署domjudge

官方教程地址:
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的密码。
使用docker部署domjudge_第1张图片
然后就可以在domjudge中看到当前的judgehost了。

你可能感兴趣的:(使用docker部署domjudge)