summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml3
-rw-r--r--build/docker/centos/Dockerfile3
-rw-r--r--build/docker/centos6/Dockerfile3
-rw-r--r--build/docker/debian/Dockerfile146
-rw-r--r--build/docker/ubuntu/Dockerfile176
5 files changed, 163 insertions, 168 deletions
diff --git a/.travis.yml b/.travis.yml
index 33a32d8d8..f8a8c1e82 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,12 +26,11 @@ services:
- docker
install:
- - travis_wait docker pull thrift/$DISTRO:latest || true
- cp -r ./build/docker/scripts/*.sh ./build/docker/$DISTRO/scripts/
- travis_retry travis_wait docker build -q -t thrift-build build/docker/$DISTRO
script:
- - docker run -e BUILD_LIBS="$BUILD_LIBS" $BUILD_ENV -v $(pwd):/thrift/src -it thrift-build $BUILD_CMD $BUILD_ARG
+ - docker run --net=host -e BUILD_LIBS="$BUILD_LIBS" $BUILD_ENV -v $(pwd):/thrift/src -it thrift-build $BUILD_CMD $BUILD_ARG
env:
global:
diff --git a/build/docker/centos/Dockerfile b/build/docker/centos/Dockerfile
index 011ccc03f..f544a242c 100644
--- a/build/docker/centos/Dockerfile
+++ b/build/docker/centos/Dockerfile
@@ -127,7 +127,8 @@ RUN yum install -y \
# CMake
RUN curl -sSL https://cmake.org/files/v3.4/cmake-3.4.0.tar.gz | tar -xz && \
- cd cmake-3.4.0 && ./bootstrap && make -j4 && make install
+ cd cmake-3.4.0 && ./bootstrap && make -j4 && make install && \
+ cd .. && rm -rf cmake-3.4.0
# Clean up
RUN rm -rf /tmp/* && \
diff --git a/build/docker/centos6/Dockerfile b/build/docker/centos6/Dockerfile
index 33d5dad8e..d0dc51a0a 100644
--- a/build/docker/centos6/Dockerfile
+++ b/build/docker/centos6/Dockerfile
@@ -42,7 +42,8 @@ RUN yum install -y epel-release && \
# CMake
RUN curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \
- cd cmake-3.4.1 && ./bootstrap && make -j4 && make install
+ cd cmake-3.4.1 && ./bootstrap && make -j4 && make install && \
+ cd .. && rm -rf cmake-3.4.1
ENV THRIFT_ROOT /thrift
RUN mkdir -p $THRIFT_ROOT/src
diff --git a/build/docker/debian/Dockerfile b/build/docker/debian/Dockerfile
index 66a52d724..5ec956ebc 100644
--- a/build/docker/debian/Dockerfile
+++ b/build/docker/debian/Dockerfile
@@ -15,31 +15,29 @@
# Known missing client libraries:
# - None
-FROM debian:jessie
+FROM buildpack-deps:jessie-scm
MAINTAINER Apache Thrift <dev@thrift.apache.org>
ENV DEBIAN_FRONTEND noninteractive
-# General dependencies
+# Add apt sources
+# Dart
+RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
+ curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list && \
+ sed -i /etc/apt/sources.list.d/dart_stable.list -e 's/https:/http:/g'
+
RUN apt-get update && apt-get install -y --no-install-recommends \
- apt-transport-https \
- autoconf \
- automake \
+`# General dependencies` \
bison \
build-essential \
clang \
cmake \
- curl \
debhelper \
flex \
- g++ \
- git \
- libtool \
- make \
pkg-config
-# C++ dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# C++ dependencies` \
libboost-dev \
libboost-filesystem-dev \
libboost-program-options-dev \
@@ -52,106 +50,124 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
qtbase5-dev \
qtbase5-dev-tools
-# Java dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Java dependencies` \
ant \
ant-optional \
openjdk-7-jdk \
- maven \
- && update-java-alternatives -s java-1.7.0-openjdk-amd64
+ maven
-# Python dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Python dependencies` \
python-all \
- python-all-dev \
python-all-dbg \
+ python-all-dev \
+ python-pip \
python-setuptools \
python-twisted \
python-zope.interface \
- python-pip \
python3-all \
python3-all-dbg \
python3-all-dev \
python3-setuptools \
python3-pip
-# Ruby dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Ruby dependencies` \
ruby \
ruby-dev \
- && gem install bundler rake
-
-# Perl dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Perl dependencies` \
libbit-vector-perl \
libclass-accessor-class-perl \
libcrypt-ssleay-perl \
libio-socket-ssl-perl \
libnet-ssleay-perl
-# Php dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Php dependencies` \
php5 \
php5-dev \
php5-cli \
php-pear \
re2c \
- phpunit
-
-# GlibC dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends libglib2.0-dev
+ phpunit \
+`# GlibC dependencies` \
+ libglib2.0-dev
-# Erlang dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Erlang dependencies` \
erlang-base \
erlang-eunit \
erlang-dev \
erlang-tools \
rebar
-# Go dependencies
-RUN curl -sSL https://storage.googleapis.com/golang/go1.4.3.linux-amd64.tar.gz | tar -C /usr/local/ -xz
-ENV PATH /usr/local/go/bin:$PATH
-
-
-# Haskell dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Haskell dependencies` \
ghc \
- cabal-install
-
-# Haxe
-RUN apt-get update && apt-get install -y --no-install-recommends \
+ cabal-install \
+`# Haxe dependencies` \
neko \
neko-dev \
- libneko0 \
- && mkdir -p /usr/lib/haxe && \
- curl http://haxe.org/website-content/downloads/3.2.0/downloads/haxe-3.2.0-linux64.tar.gz | \
- tar -C /usr/lib/haxe --strip-components=1 -xz && \
- ln -s /usr/lib/haxe/haxe /usr/bin/haxe && \
- ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \
- mkdir -p /usr/lib/haxe/lib && \
- chmod -R 777 /usr/lib/haxe/lib && \
- haxelib setup /usr/lib/haxe/lib && \
- haxelib install hxcpp
+ libneko0
-# Node.js dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Node.js dependencies` \
nodejs \
nodejs-dev \
nodejs-legacy \
npm
-# CSharp dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# CSharp dependencies` \
libmono-system-web2.0-cil \
mono-complete \
mono-devel \
mono-gmcs \
mono-xbuild
-# D dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends xdg-utils && \
- curl -sSL http://downloads.dlang.org/releases/2.x/2.070.0/dmd_2.070.0-0_amd64.deb -o /tmp/dmd_2.070.0-0_amd64.deb && \
+RUN apt-get update && apt-get install -y --no-install-recommends \
+`# D dependencies` \
+ xdg-utils \
+`# Dart dependencies` \
+ dart \
+`# Lua dependencies` \
+ lua5.2 \
+ lua5.2-dev \
+`# MinGW dependencies` \
+ mingw32 \
+ mingw32-binutils \
+`# mingw32-runtime` \
+ nsis \
+`# Clean up` \
+ && rm -rf /var/cache/apt/* && \
+ rm -rf /var/lib/apt/lists/* && \
+ rm -rf /tmp/* && \
+ rm -rf /var/tmp/*
+
+# Java
+RUN update-java-alternatives -s java-1.7.0-openjdk-amd64
+
+# Ruby
+RUN gem install bundler rake
+
+# Go
+RUN curl -sSL https://storage.googleapis.com/golang/go1.4.3.linux-amd64.tar.gz | tar -C /usr/local/ -xz
+ENV PATH /usr/local/go/bin:$PATH
+
+# Haxe
+RUN mkdir -p /usr/lib/haxe && \
+ curl http://haxe.org/website-content/downloads/3.2.0/downloads/haxe-3.2.0-linux64.tar.gz | \
+ tar -C /usr/lib/haxe --strip-components=1 -xz && \
+ ln -s /usr/lib/haxe/haxe /usr/bin/haxe && \
+ ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \
+ mkdir -p /usr/lib/haxe/lib && \
+ chmod -R 777 /usr/lib/haxe/lib && \
+ haxelib setup /usr/lib/haxe/lib && \
+ haxelib install hxcpp
+
+# D
+RUN curl -sSL http://downloads.dlang.org/releases/2.x/2.070.0/dmd_2.070.0-0_amd64.deb -o /tmp/dmd_2.070.0-0_amd64.deb && \
dpkg -i /tmp/dmd_2.070.0-0_amd64.deb && \
rm /tmp/dmd_2.070.0-0_amd64.deb && \
curl -sSL https://github.com/D-Programming-Deimos/openssl/archive/master.tar.gz| tar xz && \
@@ -164,31 +180,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends xdg-utils && \
chmod 755 /usr/local/bin/gcc-dmd && \
echo 'CC=/usr/local/bin/gcc-dmd' >> /etc/dmd.conf
-# Dart dependencies
-RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
- curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list && \
- apt-get update && apt-get install -y --no-install-recommends dart
+# Dart
ENV PATH /usr/lib/dart/bin:$PATH
-# Lua dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends \
- lua5.2 \
- lua5.2-dev
-
-# MinGW dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends \
- mingw32 \
- mingw32-binutils \
-# mingw32-runtime \
- nsis
-
-# Clean up
-RUN apt-get clean && \
- rm -rf /var/cache/apt/* && \
- rm -rf /var/lib/apt/lists/* && \
- rm -rf /tmp/* && \
- rm -rf /var/tmp/*
-
# Force utf8 locale to successfully build Haskell tf-random
ENV LC_ALL C.UTF-8
diff --git a/build/docker/ubuntu/Dockerfile b/build/docker/ubuntu/Dockerfile
index 469f026dd..56708bc9f 100644
--- a/build/docker/ubuntu/Dockerfile
+++ b/build/docker/ubuntu/Dockerfile
@@ -15,33 +15,45 @@
# Known missing client libraries:
# - None
-FROM ubuntu:trusty
+FROM buildpack-deps:trusty-scm
MAINTAINER Apache Thrift <dev@thrift.apache.org>
ENV DEBIAN_FRONTEND noninteractive
-# General dependencies
+# Add apt sources
+# Erlang
+RUN echo 'deb http://packages.erlang-solutions.com/debian trusty contrib' > /etc/apt/sources.list.d/erlang_solutions.list && \
+ curl -sSL https://packages.erlang-solutions.com/debian/erlang_solutions.asc | apt-key add -
+# Dart
+RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
+ curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list && \
+ sed -i /etc/apt/sources.list.d/dart_stable.list -e 's/https:/http:/g'
+
+# Consider using mirror nearby when building locally
+# TODO: Provide option via --build-arg=...
+# RUN sed -i /etc/apt/sources.list -e 's!http://archive.ubuntu.com/ubuntu/!http://your/mirror/!g'
+
RUN apt-get update && apt-get install -y --no-install-recommends \
- apt-transport-https \
- autoconf \
- automake \
+`# General dependencies` \
bison \
build-essential \
clang \
cmake \
- curl \
debhelper \
flex \
- g++ \
- git \
- libtool \
- make \
ninja-build \
- pkg-config
+ pkg-config \
+`# Included in buildpack-deps` \
+`# autoconf` \
+`# automake` \
+`# g++` \
+`# git` \
+`# libtool` \
+`# make`
-# C++ dependencies
-# libevent and OpenSSL are needed by D too
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# C++ dependencies` \
+`# libevent and OpenSSL are needed by D too` \
libboost-dev \
libboost-filesystem-dev \
libboost-program-options-dev \
@@ -54,19 +66,18 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
qtbase5-dev \
qtbase5-dev-tools
-# Java dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Java dependencies` \
ant \
ant-optional \
openjdk-7-jdk \
- maven \
- && update-java-alternatives -s java-1.7.0-openjdk-amd64
+ maven
-# Python dependencies
-# TODO:
-# Install twisted and zope.interface via pip. we need twisted at ./configure time, otherwise
-# py.twisted tests are skipped.
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Python dependencies` \
+`# TODO:` \
+`# Install twisted and zope.interface via pip. we need twisted at ./configure time, otherwise` \
+`# py.twisted tests are skipped.` \
python-all \
python-all-dbg \
python-all-dev \
@@ -80,91 +91,102 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
python3-setuptools \
python3-pip
-# Ruby dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Ruby dependencies` \
ruby \
ruby-dev \
- && gem install bundler rake
-
-# Perl dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Perl dependencies` \
libbit-vector-perl \
libclass-accessor-class-perl \
libcrypt-ssleay-perl \
libio-socket-ssl-perl \
libnet-ssleay-perl
-# Php dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Php dependencies` \
php5 \
php5-dev \
php5-cli \
php-pear \
re2c \
- phpunit
-
-# GlibC dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends libglib2.0-dev
+ phpunit \
+`# GlibC dependencies` \
+ libglib2.0-dev
-# Erlang dependencies
-RUN echo 'deb http://packages.erlang-solutions.com/debian trusty contrib' > /etc/apt/sources.list.d/erlang_solutions.list && \
- curl -sSL http://packages.erlang-solutions.com/debian/erlang_solutions.asc | apt-key add - && \
- apt-get update && apt-get install -y --no-install-recommends \
+RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Erlang dependencies` \
erlang-base \
erlang-eunit \
erlang-dev \
erlang-tools \
rebar
-# Go dependencies
-RUN curl -sSL https://storage.googleapis.com/golang/go1.4.3.linux-amd64.tar.gz | tar -C /usr/local/ -xz
-ENV PATH /usr/local/go/bin:$PATH
-
-# Haskell dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Haskell dependencies` \
ghc \
- cabal-install
-# Packages tend to be overwritten by build process since we're currently calling cabal update
-# libghc-binary-dev \
-# libghc-network-dev \
-# libghc-http-dev \
-# libghc-hashable-dev \
-# libghc-unordered-containers-dev \
-# libghc-vector-dev
-
-# Haxe
-RUN apt-get update && apt-get install -y --no-install-recommends \
+ cabal-install \
+`# Haxe dependencies` \
neko \
neko-dev \
- libneko0 \
- && mkdir -p /usr/lib/haxe && \
- curl http://haxe.org/website-content/downloads/3.2.0/downloads/haxe-3.2.0-linux64.tar.gz | \
- tar -C /usr/lib/haxe --strip-components=1 -xz && \
- ln -s /usr/lib/haxe/haxe /usr/bin/haxe && \
- ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \
- mkdir -p /usr/lib/haxe/lib && \
- chmod -R 777 /usr/lib/haxe/lib && \
- haxelib setup /usr/lib/haxe/lib && \
- haxelib install hxcpp
+ libneko0
-# Node.js dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# Node.js dependencies` \
nodejs \
nodejs-dev \
nodejs-legacy \
npm
-# CSharp dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
+`# CSharp dependencies` \
libmono-system-web2.0-cil \
mono-complete \
mono-devel \
mono-gmcs \
mono-xbuild
-# D dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends xdg-utils && \
- curl -sSL http://downloads.dlang.org/releases/2.x/2.070.0/dmd_2.070.0-0_amd64.deb -o /tmp/dmd_2.070.0-0_amd64.deb && \
+RUN apt-get update && apt-get install -y --no-install-recommends \
+`# D dependencies` \
+ xdg-utils \
+`# Dart dependencies` \
+ dart \
+`# Lua dependencies` \
+ lua5.2 \
+ lua5.2-dev \
+`# MinGW dependencies` \
+ mingw32 \
+ mingw32-binutils \
+ mingw32-runtime \
+ nsis \
+`# Clean up` \
+ && rm -rf /var/cache/apt/* && \
+ rm -rf /var/lib/apt/lists/* && \
+ rm -rf /tmp/* && \
+ rm -rf /var/tmp/*
+
+# Java
+RUN update-java-alternatives -s java-1.7.0-openjdk-amd64
+
+# Ruby
+RUN gem install bundler rake
+
+# Go
+RUN curl -sSL https://storage.googleapis.com/golang/go1.4.3.linux-amd64.tar.gz | tar -C /usr/local/ -xz
+ENV PATH /usr/local/go/bin:$PATH
+
+# Haxe
+RUN mkdir -p /usr/lib/haxe && \
+ curl http://haxe.org/website-content/downloads/3.2.0/downloads/haxe-3.2.0-linux64.tar.gz | \
+ tar -C /usr/lib/haxe --strip-components=1 -xz && \
+ ln -s /usr/lib/haxe/haxe /usr/bin/haxe && \
+ ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \
+ mkdir -p /usr/lib/haxe/lib && \
+ chmod -R 777 /usr/lib/haxe/lib && \
+ haxelib setup /usr/lib/haxe/lib && \
+ haxelib install hxcpp
+
+# D
+RUN curl -sSL http://downloads.dlang.org/releases/2.x/2.070.0/dmd_2.070.0-0_amd64.deb -o /tmp/dmd_2.070.0-0_amd64.deb && \
dpkg -i /tmp/dmd_2.070.0-0_amd64.deb && \
rm /tmp/dmd_2.070.0-0_amd64.deb && \
curl -sSL https://github.com/D-Programming-Deimos/openssl/archive/master.tar.gz| tar xz && \
@@ -177,31 +199,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends xdg-utils && \
chmod 755 /usr/local/bin/gcc-dmd && \
echo 'CC=/usr/local/bin/gcc-dmd' >> /etc/dmd.conf
-# Dart dependencies
-RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
- curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list && \
- apt-get update && apt-get install -y --no-install-recommends dart
+# Dart
ENV PATH /usr/lib/dart/bin:$PATH
-# Lua dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends \
- lua5.2 \
- lua5.2-dev
-
-# MinGW dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends \
- mingw32 \
- mingw32-binutils \
- mingw32-runtime \
- nsis
-
-# Clean up
-RUN apt-get clean && \
- rm -rf /var/cache/apt/* && \
- rm -rf /var/lib/apt/lists/* && \
- rm -rf /tmp/* && \
- rm -rf /var/tmp/*
-
ENV THRIFT_ROOT /thrift
RUN mkdir -p $THRIFT_ROOT/src
COPY scripts $THRIFT_ROOT