blob: 0b02a70fe3bba3e40b2721aac960fa04227bede9 [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 \
Nobuaki Sukegawa760511f2015-11-06 21:24:16 +090040 python-twisted python-zope.interface python-six
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
jfarrellb2e90c12015-07-27 08:49:53 -040056RUN echo 'deb http://packages.erlang-solutions.com/debian trusty contrib' > /etc/apt/sources.list.d/erlang_solutions.list && \
57 curl -sSL http://packages.erlang-solutions.com/debian/erlang_solutions.asc | sudo apt-key add - && \
58 apt-get update && \
Nobuaki Sukegawa826ea992015-10-28 22:19:45 +090059 apt-get install -y erlang-base erlang-eunit erlang-dev erlang-tools
jfarrelle03f7e82015-02-18 23:25:54 -050060
61# GO dependencies
jfarrell763841b2015-06-24 09:11:54 -040062RUN curl -sSL https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz | tar -C /usr/lib/ -xz && \
63 mkdir -p /usr/share/go
64
65ENV GOROOT /usr/lib/go
66ENV GOPATH /usr/share/go
67ENV PATH ${GOROOT}/bin:${GOPATH}/bin:$PATH
jfarrelle03f7e82015-02-18 23:25:54 -050068
69# Haskell dependencies
70RUN apt-get install -y ghc cabal-install libghc-binary-dev libghc-network-dev libghc-http-dev \
71 libghc-hashable-dev libghc-unordered-containers-dev libghc-vector-dev && \
72 cabal update
73
74# Haxe
jfarrell763841b2015-06-24 09:11:54 -040075RUN apt-get install -y neko neko-dev libneko0 && \
jfarrelle03f7e82015-02-18 23:25:54 -050076 mkdir -p /tmp/haxe /usr/lib/haxe && \
jfarrellb2e90c12015-07-27 08:49:53 -040077 curl http://haxe.org/website-content/downloads/3.2.0/downloads/haxe-3.2.0-linux64.tar.gz -o /tmp/haxe/haxe-3.2.0-linux64.tar.gz && \
78 tar -xvzf /tmp/haxe/haxe-3.2.0-linux64.tar.gz -C /usr/lib/haxe --strip-components=1 && \
jfarrelle03f7e82015-02-18 23:25:54 -050079 ln -s /usr/lib/haxe/haxe /usr/bin/haxe && \
80 ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \
jfarrelle03f7e82015-02-18 23:25:54 -050081 mkdir -p /usr/lib/haxe/lib && \
82 chmod -R 777 /usr/lib/haxe/lib && \
83 haxelib setup /usr/lib/haxe/lib && \
84 haxelib install hxcpp
85
86# Lua dependencies
87RUN apt-get install -y lua5.2 lua5.2-dev
88
89# Node.js dependencies
90RUN apt-get install -y nodejs nodejs-dev nodejs-legacy npm
91
92# CSharp
93RUN apt-get install -y mono-gmcs mono-devel mono-xbuild mono-complete libmono-system-web2.0-cil \
94 mingw32 mingw32-binutils mingw32-runtime nsis
95
96# D dependencies
97# THRIFT-2916: DMD pinned to 2.065.0-0 due to regression in 2.066
jfarrellb2e90c12015-07-27 08:49:53 -040098# THRIFT-3253: DMD pinned to 2.065.0-0 due to deprecations 2.067.1
99RUN apt-get install -y gcc-multilib xdg-utils && \
100 curl -sSL http://downloads.dlang.org/releases/2.x/2.065.0/dmd_2.065.0-0_amd64.deb -o /tmp/dmd_2.065.0-0_amd64.deb && \
101 dpkg -i /tmp/dmd_2.065.0-0_amd64.deb && \
102 rm /tmp/dmd_2.065.0-0_amd64.deb
jfarrelle03f7e82015-02-18 23:25:54 -0500103
104# Clean up
105RUN apt-get clean && \
106 rm -rf /var/cache/apt/* && \
107 rm -rf /var/lib/apt/lists/* && \
108 rm -rf /tmp/* && \
109 rm -rf /var/tmp/*
110
111WORKDIR $HOME