目錄:
前言:
Docker安裝簡易方便,但在Docker中跑cms會使效率降低,可能會導致本來不會超時的code變成TLE,另外,如果參賽者眾多也建議使用直接安裝在電腦上的方式去運行CMS,比較有效率且保險。
主機環境:
Cgroup Version : 1 (cms只允許v1)
查看Cgroup版本
sudo docker info | grep 'Cgroup Version'
如果是2要切換到1。
sudo sed -i '/GRUB_CMDLINE_LINUX=/c\GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=0"' /etc/default/grub
sudo update-grub
sudo reboot
Step. 1 更新所有套件
sudo apt update && sudo apt upgrade -y
Step. 2 安裝docker compose
sudo apt install docker-compose -y
Step. 3 下載cms
git clone https://github.com/erichung1113/cms.git && cd cms
Step. 4 執行docker compose
sudo docker-compose up -d
Step. 5 建立Admin帳號
sudo docker exec -t cms sudo cmsAddAdmin admin
接著打開瀏覽器並輸入以下網址就可使用啦
參賽者介面:localhost:8888
管理員介面:localhost:8889
計分板:localhost:8890
報錯有分兩種,一種是docker的報錯,另一種則是cms的報錯。遇到前者可以把Step 4的-d
參數拿掉,docker就會顯示詳細的log。遇到後者則可以先進入container並輸入cmsLogService
即可看到cms詳細的log。
進到管理員介面後,預設的比賽是這場,你需要在裡面找到Solution(在每一題的sol資料夾底下),並上傳cms測試各種語言是否能編譯及執行。
另外,如果想要切換比賽可以執行以下步驟 :
Step. 1 修改docker file
vim docker-compose.yml
在第38行找到cmsResourceService -a 1;
,並把最後面的數字改成要開啟的比賽編號,編號為操作管理員介面進到該比賽後,網址列最後的數字。
Step. 2 執行docker compose
(可直接執行,不需暫停container)
sudo docker-compose up -d
DB會存在本機上,你把container刪掉重新compose後比賽還是會在,如要完全刪除比賽請執行以下指令,執行前請三思(docker中的所有比賽將會被完全刪除)。
sudo rm -rf /cms_docker_postgresql_data
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing