青島大學開源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 用戶下操作的。 ,有什么問題歡迎討論。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM