

Show HN: CLI for executing code in many different languages with Docker - andystanton
https://docker-exec.github.io/

======
M8
Wanted to ask which one, but both seem appropriate :):

[http://en.wikipedia.org/wiki/Common_Language_Infrastructure](http://en.wikipedia.org/wiki/Common_Language_Infrastructure)

[http://en.wikipedia.org/wiki/Command-
line_interface](http://en.wikipedia.org/wiki/Command-line_interface)

~~~
andystanton
Haha, I was going for the latter.

------
gizzlon
Cool!

The Perl one seems to be perl6, not perl5: [https://github.com/docker-
exec/perl/blob/master/Dockerfile](https://github.com/docker-
exec/perl/blob/master/Dockerfile)

Maybe you should rename it to Perl6? Perl 5 is still the standard in the Perl
world..

~~~
andystanton
I didn't do my research @gizzlon - I assumed it was backwards compatible!

Perhaps you can help - a quick Google suggests that a reasonable Perl 6 file
extension is .p6 - is that standard in the Perl world?

dexec chooses a Docker image based on file extension. I'm planning to allow
this to be overridden anyway, but it would be great if there is an easy way to
distinguish between Perl 5 and 6 source files.

~~~
senorsmile
perl6 will definitely not backwards compatible. AFAICT, if any extension is
used, it will probably still be '.pl'. the hash bang line (at least in unix
land) determines the specific interpreter to use. Besides that, perl6 is not
quite production ready (although this it is supposed to be christmas this
year). Perl6 doesn't even have one specific implementation, although it sounds
like the first production ready version will be rakudo on top of the MoarVM.

Perl5 would be a much saner default. I would worry about supporting some
version of perl6 at a later time.

btw, cool tool!

------
gnur
As someone who wants to try a new language every month this is awesome!

It is literally every language I ever tried, and then some, this certainly
lowers the bar for me to try some more.

~~~
andystanton
Polygluttony was my original reason for making this too - I wanted an easy way
to run solutions to Project Euler problems in different languages.

If you're interested each of the Docker Exec image repositories contains
examples e.g.

[https://github.com/docker-
exec/haskell/tree/v1.0.0/test](https://github.com/docker-
exec/haskell/tree/v1.0.0/test) [https://github.com/docker-
exec/d/tree/v1.0.0/test](https://github.com/docker-exec/d/tree/v1.0.0/test)
[https://github.com/docker-
exec/racket/tree/v1.0.0/test](https://github.com/docker-
exec/racket/tree/v1.0.0/test) etc

------
shark234
Interesting. IMHO it seems useful for playing around with different languages,
but not for using it more seriously. Anyway, it looks fun, good job :)

~~~
andystanton
Thanks! And you're right - it is not intended as a production tool.

------
ericmo
Is the C# code built with Mono?

~~~
andystanton
That's right @ericmo. The C# and F# Dockerfiles are derived from this Mono
base image:

[https://github.com/docker-exec/base-
mono/blob/v1.0.0/Dockerf...](https://github.com/docker-exec/base-
mono/blob/v1.0.0/Dockerfile)

as can be seen from their respective Dockerfiles:

[https://github.com/docker-
exec/csharp/blob/v1.0.0/Dockerfile](https://github.com/docker-
exec/csharp/blob/v1.0.0/Dockerfile) [https://github.com/docker-
exec/fsharp/blob/v1.0.0/Dockerfile](https://github.com/docker-
exec/fsharp/blob/v1.0.0/Dockerfile)

The actual execution invokes this script which calls mcs or fsharpc to
compile, and then executes using the Mono runtime:

[https://github.com/docker-exec/image-
common/blob/v1.0.0/dexe...](https://github.com/docker-exec/image-
common/blob/v1.0.0/dexec-mono-family.sh)

------
fit2rule
Needs more Lua! :)

~~~
andystanton
@fit2rule Support for Lua has been added in version 1.0.1

