青岛大学开源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 手动安装

  1. 卸载旧版本
    较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-engine
  1. 安装 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
  1. 安装 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分钟,具体还得看网速而定。

出现以下内容表示成功:

用户名和密码分别是:rootrootroot. 管理员站点在 http://IP地址/admin

浏览器默认打开为:http://IP地址/

我原本想把修改后的前端内容直接打包到docker镜像中。
我是先正常启动,然后把本地的文件通过 volumns 的方式挂载到正在运行的容器中。
再把包含本地文件的正在运行的容器打包成镜像
之后把这个打包好的镜像上传到docker 云服务器商。
最后,修改 docker-compose 中的 仓库地址,结果发现 并没有我之前放在容器中的本地文件。
同样我也使用 docker cp 命令的方式,同样也无法达到最终的效果。

因此,根据群友推荐,将 需要放入容器中的文件放入到 github 中,再在 启动容器的时候,使用命令 volumns 去挂载,达到最终目的。

但是,我之前有成功的将本地文件放入到 镜像中,然后,我当时并没有记录自己的过程。。所以,以后一定要养成记录的好习惯。。

我的所有命令都是在 root 用户下操作的。 ,有什么问题欢迎讨论。

原文地址:https://www.cnblogs.com/gznb/p/13611613.html