blob: 4ce4f423174623cef2c279b2084cb9252404514b [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# - D
17# - Haxe
jfarrell763841b2015-06-24 09:11:54 -040018# - Lua
jfarrelle03f7e82015-02-18 23:25:54 -050019#
20
jfarrell763841b2015-06-24 09:11:54 -040021FROM centos:7
jfarrelle03f7e82015-02-18 23:25:54 -050022MAINTAINER Apache Thrift <dev@thrift.apache.org>
23
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +090024RUN yum install -y epel-release
jfarrelle03f7e82015-02-18 23:25:54 -050025
jfarrelle03f7e82015-02-18 23:25:54 -050026# General dependencies
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +090027RUN yum install -y \
28 tar \
29 m4 \
30 perl \
31 clang \
32 gcc \
33 gcc-c++ \
34 git \
35 libtool \
36 autoconf \
37 make \
38 bison \
39 bison-devel \
40 flex
jfarrelle03f7e82015-02-18 23:25:54 -050041
jfarrell763841b2015-06-24 09:11:54 -040042# C++ dependencies
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +090043RUN yum install -y \
44 boost-devel-static \
45 zlib-devel \
46 openssl-devel \
47 libevent-devel
jfarrelle03f7e82015-02-18 23:25:54 -050048
49# Java Dependencies
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +090050RUN yum install -y \
51 ant \
52 junit \
53 ant-junit \
54 java-1.7.0-openjdk-devel
jfarrelle03f7e82015-02-18 23:25:54 -050055
56# Python Dependencies
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +090057RUN yum install -y \
58 python-devel \
59 python-setuptools \
60 python-twisted-web \
61 python-six
jfarrelle03f7e82015-02-18 23:25:54 -050062
63# Ruby Dependencies
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +090064RUN yum install -y \
65 ruby \
66 ruby-devel \
67 rubygems && \
jfarrelle03f7e82015-02-18 23:25:54 -050068 gem install bundler rake
69
jfarrelle03f7e82015-02-18 23:25:54 -050070# Perl Dependencies
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +090071RUN yum install -y \
72 perl-Bit-Vector \
73 perl-Class-Accessor \
74 perl-ExtUtils-MakeMaker \
75 perl-Test-Simple \
76 perl-IO-Socket-SSL \
77 perl-Net-SSLeay \
78 perl-Crypt-SSLeay
jfarrelle03f7e82015-02-18 23:25:54 -050079
80# PHP Dependencies
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +090081RUN yum install -y \
82 php \
83 php-devel \
84 php-pear \
85 re2c \
86 php-phpunit-PHPUnit \
87 bzip2
jfarrelle03f7e82015-02-18 23:25:54 -050088
89# GLibC Dependencies
90RUN yum install -y glib2-devel
91
92# Erlang Dependencies
jfarrellb2e90c12015-07-27 08:49:53 -040093RUN curl -sSL http://packages.erlang-solutions.com/rpm/centos/erlang_solutions.repo -o /etc/yum.repos.d/erlang_solutions.repo && \
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +090094 yum install -y \
95 erlang-kernel \
96 erlang-erts \
97 erlang-stdlib \
98 erlang-eunit \
99 erlang-rebar \
100 erlang-tools
jfarrelle03f7e82015-02-18 23:25:54 -0500101
jfarrelle03f7e82015-02-18 23:25:54 -0500102# Go Dependencies
Nobuaki Sukegawaa8c74d52015-11-10 16:37:52 +0900103RUN curl -sSL https://storage.googleapis.com/golang/go1.4.3.linux-amd64.tar.gz | tar -C /usr/local/ -xz
104ENV PATH /usr/local/go/bin:$PATH
jfarrelle03f7e82015-02-18 23:25:54 -0500105
jfarrelle03f7e82015-02-18 23:25:54 -0500106# Haskell Dependencies
Nobuaki Sukegawaa8c74d52015-11-10 16:37:52 +0900107RUN yum -y install haskell-platform
jfarrelle03f7e82015-02-18 23:25:54 -0500108
jfarrellb2e90c12015-07-27 08:49:53 -0400109# Node.js Dependencies
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +0900110RUN yum install -y \
111 nodejs \
112 nodejs-devel \
113 npm
jfarrellb2e90c12015-07-27 08:49:53 -0400114
115# C# Dependencies
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +0900116RUN yum install -y \
117 mono-core \
118 mono-devel \
119 mono-web-devel \
120 mono-extras \
121
122# MinGW Dependencies
123RUN yum install -y \
124 mingw32-binutils \
125 mingw32-crt \
126 mingw32-nsis
127
128# CMake
129RUN curl -sSL https://cmake.org/files/v3.4/cmake-3.4.0.tar.gz | tar -xz && \
130 cd cmake-3.4.0 && ./bootstrap && make -j4 && make install
jfarrellb2e90c12015-07-27 08:49:53 -0400131
jfarrelle03f7e82015-02-18 23:25:54 -0500132# Clean up
jfarrell763841b2015-06-24 09:11:54 -0400133RUN rm -rf /tmp/* && \
134 yum clean all
jfarrelle03f7e82015-02-18 23:25:54 -0500135
Nobuaki Sukegawaa6ab1f52015-11-28 15:04:39 +0900136ENV THRIFT_ROOT /thrift
137RUN mkdir -p $THRIFT_ROOT/src
138COPY scripts $THRIFT_ROOT
139WORKDIR $THRIFT_ROOT/src