blob: eff474fec2a1443952f58cc39594af63cacbefd1 [file] [log] [blame]
jfarrelle03f7e82015-02-18 23:25:54 -05001# Licensed under the Apache License, Version 2.0 (the "License");
2# you may not use this file except in compliance with the License.
3# You may obtain a copy of the License at
4#
5# http://www.apache.org/licenses/LICENSE-2.0
6#
7# Unless required by applicable law or agreed to in writing, software
8# distributed under the License is distributed on an "AS IS" BASIS,
9# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10# See the License for the specific language governing permissions and
11# limitations under the License.
12
13# Apache Thrift Docker build environment for Centos
14#
15# Known missing client libraries:
16# - None
17
18FROM ubuntu:trusty
19MAINTAINER Apache Thrift <dev@thrift.apache.org>
20
21ENV HOME /root
22ENV DEBIAN_FRONTEND noninteractive
23
24RUN apt-get update -y && apt-get dist-upgrade -y
25
26# General dependencies
27RUN apt-get install -y automake libtool flex bison pkg-config g++ libssl-dev make libqt4-dev git \
28 debhelper
29
30# C++ dependencies
31RUN apt-get install -y libboost-dev libboost-test-dev libboost-program-options-dev \
32 libboost-filesystem-dev libboost-system-dev libevent-dev
33
34# Java dependencies
35RUN apt-get install -y ant openjdk-7-jdk maven && \
36 update-java-alternatives -s java-1.7.0-openjdk-amd64
37
38# Python dependencies
39RUN apt-get install -y python-all python-all-dev python-all-dbg python-setuptools python-support
40
41# Ruby dependencies
42RUN apt-get install -y ruby ruby-dev && \
43 gem install bundler rake
44
45# Perl dependencies
46RUN apt-get install -y libbit-vector-perl libclass-accessor-class-perl
47
48# Php dependencies
49RUN apt-get install -y php5 php5-dev php5-cli php-pear re2c phpunit
50
51# GlibC dependencies
52RUN apt-get install -y libglib2.0-dev
53
54# Erlang dependencies
55RUN apt-get install -y erlang-base erlang-eunit erlang-dev
56
57# GO dependencies
58RUN echo "golang-go golang-go/dashboard boolean false" | debconf-set-selections && \
59 apt-get install -y golang golang-go
60
61# Haskell dependencies
62RUN apt-get install -y ghc cabal-install libghc-binary-dev libghc-network-dev libghc-http-dev \
63 libghc-hashable-dev libghc-unordered-containers-dev libghc-vector-dev && \
64 cabal update
65
66# Haxe
67RUN apt-get install -y libneko0 && \
68 mkdir -p /tmp/haxe /usr/lib/haxe && \
69 curl http://haxe.org/website-content/downloads/3,1,3/downloads/haxe-3.1.3-linux64.tar.gz -o /tmp/haxe/haxe-3.1.3-linux64.tar.gz && \
70 tar -xvzf /tmp/haxe/haxe-3.1.3-linux64.tar.gz -C /usr/lib/haxe --strip-components=1 && \
71 ln -s /usr/lib/haxe/haxe /usr/bin/haxe && \
72 ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \
73 ln -s /usr/lib/libneko.so.0 /usr/lib/libneko.so && \
74 mkdir -p /usr/lib/haxe/lib && \
75 chmod -R 777 /usr/lib/haxe/lib && \
76 haxelib setup /usr/lib/haxe/lib && \
77 haxelib install hxcpp
78
79# Lua dependencies
80RUN apt-get install -y lua5.2 lua5.2-dev
81
82# Node.js dependencies
83RUN apt-get install -y nodejs nodejs-dev nodejs-legacy npm
84
85# CSharp
86RUN apt-get install -y mono-gmcs mono-devel mono-xbuild mono-complete libmono-system-web2.0-cil \
87 mingw32 mingw32-binutils mingw32-runtime nsis
88
89# D dependencies
90# THRIFT-2916: DMD pinned to 2.065.0-0 due to regression in 2.066
91RUN curl http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -o /etc/apt/sources.list.d/d-apt.list && \
92 apt-get update && apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring && \
93 apt-get update && \
94 apt-get install -y xdg-utils dmd-bin=2.065.0-0 libphobos2-dev=2.065.0-0
95
96# Clean up
97RUN apt-get clean && \
98 rm -rf /var/cache/apt/* && \
99 rm -rf /var/lib/apt/lists/* && \
100 rm -rf /tmp/* && \
101 rm -rf /var/tmp/*
102
103WORKDIR $HOME