使用docker作为沙盒

背景

其实早就想做个在线代码运行的,但是 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 区分)

preview

代码在线运行

Screenshot 2014-09-21 at 22.22.18.png

嵌入演示

<iframe src="http://tool.lu/coderunner/embed/3eV.html"; width="650" height="550" frameborder="0"></iframe>

标签: none

评论已关闭