blob: cbfb2be18e66c5236fdff95ab9f532a9b1a42d9e [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 \
jfarrell763841b2015-06-24 09:11:54 -040028 debhelper cmake
jfarrelle03f7e82015-02-18 23:25:54 -050029
30# C++ dependencies
31RUN apt-get install -y libboost-dev libboost-test-dev libboost-program-options-dev \
jfarrell763841b2015-06-24 09:11:54 -040032 libboost-filesystem-dev libboost-system-dev libboost-thread-dev libevent-dev
jfarrelle03f7e82015-02-18 23:25:54 -050033
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
jfarrell763841b2015-06-24 09:11:54 -040039RUN apt-get install -y python-all python-all-dev python-all-dbg python-setuptools python-support \
40 python-twisted python-zope.interface
jfarrelle03f7e82015-02-18 23:25:54 -050041
42# Ruby dependencies
43RUN apt-get install -y ruby ruby-dev && \
44 gem install bundler rake
45
46# Perl dependencies
47RUN apt-get install -y libbit-vector-perl libclass-accessor-class-perl
48
49# Php dependencies
50RUN apt-get install -y php5 php5-dev php5-cli php-pear re2c phpunit
51
52# GlibC dependencies
53RUN apt-get install -y libglib2.0-dev
54
55# Erlang dependencies
56RUN apt-get install -y erlang-base erlang-eunit erlang-dev
57
58# GO dependencies
jfarrell763841b2015-06-24 09:11:54 -040059RUN curl -sSL https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz | tar -C /usr/lib/ -xz && \
60 mkdir -p /usr/share/go
61
62ENV GOROOT /usr/lib/go
63ENV GOPATH /usr/share/go
64ENV PATH ${GOROOT}/bin:${GOPATH}/bin:$PATH
jfarrelle03f7e82015-02-18 23:25:54 -050065
66# Haskell dependencies
67RUN apt-get install -y ghc cabal-install libghc-binary-dev libghc-network-dev libghc-http-dev \
68 libghc-hashable-dev libghc-unordered-containers-dev libghc-vector-dev && \
69 cabal update
70
71# Haxe
jfarrell763841b2015-06-24 09:11:54 -040072RUN apt-get install -y neko neko-dev libneko0 && \
jfarrelle03f7e82015-02-18 23:25:54 -050073 mkdir -p /tmp/haxe /usr/lib/haxe && \
74 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 && \
75 tar -xvzf /tmp/haxe/haxe-3.1.3-linux64.tar.gz -C /usr/lib/haxe --strip-components=1 && \
76 ln -s /usr/lib/haxe/haxe /usr/bin/haxe && \
77 ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \
jfarrelle03f7e82015-02-18 23:25:54 -050078 mkdir -p /usr/lib/haxe/lib && \
79 chmod -R 777 /usr/lib/haxe/lib && \
80 haxelib setup /usr/lib/haxe/lib && \
81 haxelib install hxcpp
82
83# Lua dependencies
84RUN apt-get install -y lua5.2 lua5.2-dev
85
86# Node.js dependencies
87RUN apt-get install -y nodejs nodejs-dev nodejs-legacy npm
88
89# CSharp
90RUN apt-get install -y mono-gmcs mono-devel mono-xbuild mono-complete libmono-system-web2.0-cil \
91 mingw32 mingw32-binutils mingw32-runtime nsis
92
93# D dependencies
94# THRIFT-2916: DMD pinned to 2.065.0-0 due to regression in 2.066
95RUN curl http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -o /etc/apt/sources.list.d/d-apt.list && \
96 apt-get update && apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring && \
97 apt-get update && \
98 apt-get install -y xdg-utils dmd-bin=2.065.0-0 libphobos2-dev=2.065.0-0
99
100# Clean up
101RUN apt-get clean && \
102 rm -rf /var/cache/apt/* && \
103 rm -rf /var/lib/apt/lists/* && \
104 rm -rf /tmp/* && \
105 rm -rf /var/tmp/*
106
107WORKDIR $HOME