2 MAINTAINER Joel Martin <github@martintribe.org>
4 ENV DEBIAN_FRONTEND noninteractive
6 RUN echo "deb http://dl.bintray.com/sbt/debian /" > /etc/apt/sources.list.d/sbt.list
10 # General dependencies
14 RUN apt-get -y install make wget curl git
16 # Deps for compiled languages (C, Go, Rust, Nim, etc)
17 RUN apt-get -y install gcc pkg-config
19 # Deps for Java-based languages (Clojure, Scala, Java)
20 RUN apt-get -y install openjdk-7-jdk
21 ENV MAVEN_OPTS -Duser.home=/mal
23 # Deps for Mono-based languages (C#, VB.Net)
24 RUN apt-get -y install mono-runtime mono-mcs mono-vbnc
26 # Deps for node.js languages (JavaScript, CoffeeScript, miniMAL, etc)
27 RUN apt-get -y install nodejs npm
28 RUN ln -sf nodejs /usr/bin/node
32 # Implementation specific installs
36 RUN apt-get -y install gawk
39 RUN apt-get -y install bash
42 RUN apt-get -y install libglib2.0 libglib2.0-dev
43 RUN apt-get -y install libffi-dev libreadline-dev libedit2 libedit-dev
46 RUN apt-get -y install g++-4.9 libreadline-dev
49 ADD https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein \
51 RUN sudo chmod 0755 /usr/local/bin/lein
52 ENV LEIN_HOME /mal/.lein
53 ENV LEIN_JVM_OPTS -Duser.home=/mal
56 RUN npm install -g coffee-script
57 RUN touch /.coffee_history && chmod go+w /.coffee_history
60 RUN apt-get -y install mono-mcs
63 RUN wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb \
64 && dpkg -i erlang-solutions_1.0_all.deb
66 RUN apt-get -y install elixir
68 # Erlang R17 (so I can use maps)
69 RUN apt-get -y install build-essential libncurses5-dev libssl-dev
70 RUN cd /tmp && wget http://www.erlang.org/download/otp_src_17.5.tar.gz \
71 && tar -C /tmp -zxf /tmp/otp_src_17.5.tar.gz \
72 && cd /tmp/otp_src_17.5 && ./configure && make && make install \
73 && rm -rf /tmp/otp_src_17.5 /tmp/otp_src_17.5.tar.gz
74 # Rebar for building the Erlang implementation
75 RUN cd /tmp/ && git clone -q https://github.com/rebar/rebar.git \
76 && cd /tmp/rebar && ./bootstrap && cp rebar /usr/local/bin \
80 RUN apt-get -y install gforth
83 RUN apt-get -y install golang
86 RUN apt-get -y install libunistring-dev libgc-dev autoconf libtool flex gettext texinfo libgmp-dev
87 RUN git clone git://git.sv.gnu.org/guile.git /tmp/guile \
88 && cd /tmp/guile && ./autogen.sh && ./configure && make && make install
91 RUN apt-get -y install ghc haskell-platform libghc-readline-dev libghc-editline-dev
94 RUN apt-get -y install maven2
97 # Already satisfied above
100 RUN apt-get -y install software-properties-common
101 RUN apt-add-repository -y ppa:staticfloat/juliareleases
102 RUN apt-get -y update
103 RUN apt-get -y install julia
106 RUN apt-get -y install lua5.1 lua-rex-pcre luarocks
107 RUN luarocks install linenoise
110 # N/A: self-hosted on other language implementations
113 # Already satisfied as a based dependency for testing
116 RUN npm install -g minimal-lisp
119 RUN cd /tmp && wget http://nim-lang.org/download/nim-0.11.0.tar.xz \
120 && tar xvJf /tmp/nim-0.11.0.tar.xz && cd nim-0.11.0 \
121 && make && sh install.sh /usr/local/bin \
122 && rm -r /tmp/nim-0.11.0
125 RUN apt-get -y install ocaml-batteries-included
128 RUN apt-get -y install perl
131 RUN apt-get -y install php5-cli
133 # PostScript/ghostscript
134 RUN apt-get -y install ghostscript
137 RUN apt-get -y install python
140 RUN apt-get -y install r-base-core
143 RUN apt-get -y install racket
146 RUN apt-get -y install ruby
149 RUN curl -sf https://raw.githubusercontent.com/brson/multirust/master/blastoff.sh | sh
152 RUN apt-get -y --force-yes install sbt
153 RUN apt-get -y install scala
154 ENV SBT_OPTS -Duser.home=/mal
157 RUN apt-get -y install mono-vbnc
161 RUN apt-get -y install libgtkglext1
162 RUN cd /usr/lib/x86_64-linux-gnu/ \
163 && wget http://downloads.factorcode.org/releases/0.97/factor-linux-x86-64-0.97.tar.gz \
164 && tar xvzf factor-linux-x86-64-0.97.tar.gz \
165 && ln -sf /usr/lib/x86_64-linux-gnu/factor/factor /usr/bin/factor \
166 && rm factor-linux-x86-64-0.97.tar.gz
168 # MATLAB is proprietary/licensed. Maybe someday with Octave.
169 # Swift is XCode/OS X only
170 ENV SKIP_IMPLS matlab swift
172 ENV DEBIAN_FRONTEND newt