docker 搭建 hustoj
hustoj 是个GPL开源的OJ,其提供了docker形式的安装方式。
为执行方便,选择使用aliyun提供的docker镜像来加速安装。
拉取镜像
docker pull registry.cn-shanghai.aliyuncs.com/shiningrise/hustoj
执行镜像
docker run -d -it --name hustoj -p 9900:80 --privileged registry.cn-shanghai.aliyuncs.com/shiningrise/hustoj:latest
9900 是物理机针对docker image 80端口的映射。
访问本机如下地址即可开始使用 hustoj
http://127.0.0.1:9900
下载题库
https://github.com/zhblue/freeproblemset/
提供了免费的题库下载,如果觉得不够用,
还可以去 http://tk.hustoj.com/ 作者提供的付费网站下载更多。
使用本地磁盘volumn
docker因为每次启动都是全新,为持久化,可以挂载一个本地目录给docker image。
标准执行方式
docker run -d -it \
-v /data/docker/docker-wxy/data:/data \
--privileged \
--name hustoj \
-p 80:80 shiningrise/hustoj:latest
docker测试安装
docker run -d -it --name hustoj -p 80:80 --privileged shiningrise/hustoj:latest
仅安装C++版本
docker run -d -it --name hustoj -p 80:80 --privileged shiningrise/hustoj:cpp
执行docker shell
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f111112222333 registry.cn-shanghai.aliyuncs.com/shiningrise/hustoj:latest "/usr/local/bin/dock…" About an hour ago Up About an hour 0.0.0.0:9900->80/tcp hustoj
docker exec -it f111112222333 bash ## f111112222333 是当前docker 映像执行的实例id
进去之后可以通过 mysql 执行数据库操作等。
hustoj 配置其它语言
TO be done.