其實早就想做個在線代碼運行的,但是 CentOS6 對 Docker 的支持不是很好,坑比較多。待 CentOS7 出來後思考了一段時間,最終還是決定做起來了。
怎麼做
最初考慮的時候就是想着可以擴展性比較好的解決方案,建立一個socket sever可以把文件分發到不同的機器上,再後來便想着還是直接用rsync吧,然後...神馬都沒弄,就直接本地 mount 到 docker container 裏面去了,做了個池子,最多隻能開50個docker container
Dockerfile
FROM centos:latest
RUN yum install gcc gcc-c++ php golang -y
ADD entrypoint.sh entrypoint.sh
ADD run-code.sh run-code.sh
ENTRYPOINT ["/bin/bash", "entrypoint.sh"]
至於前端的東西,是用的CodeMirror
,給他加了個命令和快捷鍵(mac 和 pc 區分)