isolate Sandbox 使用

Sandbox

Sandbox 的中文名字就是直譯過來的沙箱
他能讓程式在一個隔離的環境中執行
隔離的意思就是有限的路徑、有限的記憶體甚至是有限的 process 數量等等
通常是拿來測試一些不受信任的程式
讓我們就算執行了惡意程式也不會影響到我們的作業系統或環境

今天依然是在寫 OJ 中 judgehost 的部份
因為 judgehost 需要跑別人 submission 送來的程式
如果有人送個惡意程式的話就糟糕了
所以就需要用到 sandbox
把大家的 submission 放在 sandbox 裡面跑

isolate

isolate 是 ioi 的那群人開發的一個開源 sandbox
甚至還有蠻不錯的 manual page
前陣子發現還不錯的 judgehost 開源 API —— Judge0 也是使用 isolate 搭配 Ruby on Rails 實現的

Read more

使用 docker-compose 建立開發環境

動機

最近覺得自己的開發技能還有很多欠缺的地方
尤其是完整的開發流程
以往都是直接在自己的本機開發
也沒有使用 CI/CD

然後又突然想寫寫看 OJ
於是我打算直接做中學
並做以下幾個改變

  • 使用 docker-compose 建立開發環境
  • 善用 environment variables
  • 做 testing 以及 CI/CD
  • 認真寫 git commit messages
  • 將學到的東西跟踩到的坑寫成 blog 文章
Read more