青岛大学开源OJ以及部署
源码地址为:https://github.com/QingdaoU/OnlineJudge
可参考的文档为:https://github.com/QingdaoU/OnlineJudgeDeploy/tree/2.0
本文参考文档:https://www.cnblogs.com/youcong/p/10085387.html
前端修改教程:https://docs.onlinejudge.me/#/onlinejudge/guide/update_fe
一、安装所依赖的环境
注意: 如果是 Centos 系统,需要把 apt-get
修改为 yum
. 如果是其他的Linux 系统,同样也是需要修改相应的包管理器。
注意: 如果是 Centos 系统,需要把 apt-get
修改为 yum
. 如果是其他的Linux 系统,同样也是需要修改相应的包管理器。
注意: 如果是 Centos 系统,需要把 apt-get
修改为 yum
. 如果是其他的Linux 系统,同样也是需要修改相应的包管理器。
1. 安装 git
安装命令如下:
sudo apt-get update && sudo apt-get install -y vim python-pip curl git
可能会出现中间两个提示选择,请都选择为 y
出现类似下图内容就是成功了。
2. 安装 docker-compose
安装命令如下:
sudo apt-get install docker-compose
出现类似下面的内容就表示可以了
3. 安装 docker
3.1 脚本安装
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
可能会出现下面的内容,提示公钥未安装,但是并没实际上的报错,而只有一个警告,可以暂时先忽略这个。
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
同样也可能出现上面的命令一样的提示,可以展示先忽略。
3.2 手动安装
- 卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装 Docker Engine-Community
使用 Docker 仓库进行安装
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
使用以下命令来设置稳定的仓库。
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
sudo yum install docker-ce docker-ce-cli containerd.io
3.3 启动
输入下面命令:
sudo systemctl start docker
然后输入: docker ps
进行验证。 参考下图
二、下载代码,并且启动和部署。
1. 下载源代码
请选择一个剩余空间比较大的磁盘执行下面的命令 :
注意: 这里的仓库路径不再是原先 青岛大学开源oj 的源路径了。 如果需要使用 青岛大学的oj,请把 下面命令中的 gznb
替换成 QingdaoU
。
git clone -b 2.0 https://github.com/gznb/OnlineJudgeDeploy.git && cd OnlineJudgeDeploy
出现下面内容表示成功:
2. 启动
执行下面的命令:
docker-compose up -d(root用户使用该命令)或sudo -E docker-compose up -d(非root用户使用该命令)
这里需要等待一段时间,5~30分钟,具体还得看网速而定。
出现以下内容表示成功:
用户名和密码分别是:root
和rootroot
. 管理员站点在 http://IP地址/admin
浏览器默认打开为:http://IP地址/
我原本想把修改后的前端内容直接打包到docker镜像中。
我是先正常启动,然后把本地的文件通过 volumns 的方式挂载到正在运行的容器中。
再把包含本地文件的正在运行的容器打包成镜像
之后把这个打包好的镜像上传到docker 云服务器商。
最后,修改 docker-compose 中的 仓库地址,结果发现 并没有我之前放在容器中的本地文件。
同样我也使用 docker cp 命令的方式,同样也无法达到最终的效果。
因此,根据群友推荐,将 需要放入容器中的文件放入到 github 中,再在 启动容器的时候,使用命令 volumns 去挂载,达到最终目的。
但是,我之前有成功的将本地文件放入到 镜像中,然后,我当时并没有记录自己的过程。。所以,以后一定要养成记录的好习惯。。
我的所有命令都是在 root
用户下操作的。 ,有什么问题欢迎讨论。