Awesome
glot-images
Overview
glot-images are the docker images used by glot.io to run code. The images are built using nix which are pinned to a specific nixpkgs commit to create reproducible images. See the overview on how everything is connected.
Code runner
The code-runner is installed in each image which writes the files inside the container, compiles and runs the code and returns the result as a json payload.
Images
Prebuilt images can be found on Docker Hub. (If nix is unfamiliar you can find some old examples using Dockerfile here)
Example
echo '{
"language": "javascript",
"files": [{
"name": "main.js",
"content": "console.log(\"Hello World!\");"
}]
}' | docker run --rm -i --read-only --tmpfs /tmp:rw,noexec,nosuid,size=65536k --tmpfs /home/glot:rw,exec,nosuid,uid=1000,gid=1000,size=131072k -u glot -w /home/glot glot/javascript:latest
Result
{"stdout":"Hello World!\n","stderr":"","error":""}