源碼地址為: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
用戶下操作的。 ,有什么問題歡迎討論。