This docker image provides the current version of the
rdmd compiler of the D programming language.
The container takes source code encoded as Base64 on the command line and
decodes it internally and passes it to rdmd. The compiler
tries to compile the source and, if successful, outputs
the program's output. Compiler errors will also be output,
to stderr.
This container is used in the dlang-tour to support online compilation of user code in a safe sandbox.
Run the docker container passing the base64 source as command line parameter:
> bsource=$(echo 'void main() { import std.stdio; writefln("Hello World, %s (%s)", __VENDOR__, __VERSION__); }' | base64 -w0)
> docker run --rm dlangtour/core-exec:dmd-nightly $bsource
Hello World, Digital Mars D (2074)
> bsource=$(echo 'void main() { import std.stdio; writefln("Hello World, %s (%s)", __VENDOR__, __VERSION__); }' | base64 -w0)
> docker run --rm dlangtour/core-exec:ldc $bsource
Hello World, LDC (2072)
$ bsource=$(echo 'void main() { import std.algorithm, std.stdio; stdin.byLine.each!writeln; }' | base64 -w0)
$ bstdin=$(printf 'Venus\nParis\nMontreal' | base64 -w0)
$ docker run --rm dlangtour/core-exec:dmd $bsource $bstdin
Venus
Paris
Montreal
$ bsource=$(echo 'void main() { import std.stdio; version(Foo) writeln("Hello World"); }' | base64 -w0)
$ DOCKER_FLAGS="-version=Foo" docker run -e DOCKER_FLAGS --rm dlangtour/core-exec:dmd $bsource
Hello World
$ bsource=$(echo 'void main() { import foo; version(Foo) writeln("Hello World"); }' | base64 -w0)
$ DOCKER_COLOR="on" docker run -e DOCKER_COLOR --rm dlangtour/core-exec:dmd $bsource
The docker image gets built after every push to master and pushed to DockerHub.
They are updated daily.
The following images are available:
dlangtour/core-exec:dmd-nightlydlangtour/core-exec:dmd-betadlangtour/core-exec:dmddlangtour/core-exec:ldc-betadlangtour/core-exec:ldcdlangtour/core-exec:gdc
Boost license.