OLD | NEW |
(Empty) | |
| 1 # This Dockerfile specifies the recipe for creating an image for the tests |
| 2 # to run in. |
| 3 # |
| 4 # We install as many test dependencies here as we can, because these setup |
| 5 # steps can be cached. They do *not* run every time we run the build. |
| 6 # The Docker image is only rebuilt when the Dockerfile (ie. this file) |
| 7 # changes. |
| 8 |
| 9 # Base Dockerfile for gRPC dev images |
| 10 FROM 32bit/debian:latest |
| 11 |
| 12 # Apt source for php |
| 13 RUN echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu trusty main" | tee /etc
/apt/sources.list.d/various-php.list && \ |
| 14 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F4FCBB07 |
| 15 |
| 16 # Install dependencies. We start with the basic ones require to build protoc |
| 17 # and the C++ build |
| 18 RUN apt-get clean && apt-get update && apt-get install -y --force-yes \ |
| 19 autoconf \ |
| 20 autotools-dev \ |
| 21 build-essential \ |
| 22 bzip2 \ |
| 23 ccache \ |
| 24 curl \ |
| 25 gcc \ |
| 26 git \ |
| 27 libc6 \ |
| 28 libc6-dbg \ |
| 29 libc6-dev \ |
| 30 libgtest-dev \ |
| 31 libtool \ |
| 32 make \ |
| 33 parallel \ |
| 34 time \ |
| 35 wget \ |
| 36 unzip \ |
| 37 # -- For python -- |
| 38 python-setuptools \ |
| 39 python-pip \ |
| 40 python-dev \ |
| 41 # -- For C++ benchmarks -- |
| 42 cmake \ |
| 43 # -- For PHP -- |
| 44 php5.5 \ |
| 45 php5.5-dev \ |
| 46 php5.5-xml \ |
| 47 php5.6 \ |
| 48 php5.6-dev \ |
| 49 php5.6-xml \ |
| 50 php7.0 \ |
| 51 php7.0-dev \ |
| 52 php7.0-xml \ |
| 53 phpunit \ |
| 54 valgrind \ |
| 55 libxml2-dev \ |
| 56 && apt-get clean |
| 57 |
| 58 ################## |
| 59 # PHP dependencies. |
| 60 RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" |
| 61 RUN php composer-setup.php |
| 62 RUN mv composer.phar /usr/bin/composer |
| 63 RUN php -r "unlink('composer-setup.php');" |
| 64 RUN cd /tmp && \ |
| 65 git clone https://github.com/google/protobuf.git && \ |
| 66 cd protobuf/php && \ |
| 67 git reset 46ae90dc5e145b12fffa7e053a908a9f3e066286 && \ |
| 68 ln -sfn /usr/bin/php5.5 /usr/bin/php && \ |
| 69 ln -sfn /usr/bin/php-config5.5 /usr/bin/php-config && \ |
| 70 ln -sfn /usr/bin/phpize5.5 /usr/bin/phpize && \ |
| 71 composer install && \ |
| 72 mv vendor /usr/local/vendor-5.5 && \ |
| 73 ln -sfn /usr/bin/php5.6 /usr/bin/php && \ |
| 74 ln -sfn /usr/bin/php-config5.6 /usr/bin/php-config && \ |
| 75 ln -sfn /usr/bin/phpize5.6 /usr/bin/phpize && \ |
| 76 composer install && \ |
| 77 mv vendor /usr/local/vendor-5.6 && \ |
| 78 ln -sfn /usr/bin/php7.0 /usr/bin/php && \ |
| 79 ln -sfn /usr/bin/php-config7.0 /usr/bin/php-config && \ |
| 80 ln -sfn /usr/bin/phpize7.0 /usr/bin/phpize && \ |
| 81 composer install && \ |
| 82 mv vendor /usr/local/vendor-7.0 |
| 83 RUN wget http://am1.php.net/get/php-5.5.38.tar.bz2/from/this/mirror |
| 84 RUN mv mirror php-5.5.38.tar.bz2 |
| 85 RUN tar -xvf php-5.5.38.tar.bz2 |
| 86 RUN cd php-5.5.38 && ./configure --enable-maintainer-zts --prefix=/usr/local/php
-5.5-zts && \ |
| 87 make && make install && make clean && cd .. |
| 88 RUN cd php-5.5.38 && ./configure --enable-bcmath --prefix=/usr/local/php-5.5-bc
&& \ |
| 89 make && make install && make clean && cd .. |
| 90 |
| 91 ################## |
| 92 # Python dependencies |
| 93 |
| 94 # These packages exist in apt-get, but their versions are too old, so we have |
| 95 # to get updates from pip. |
| 96 |
| 97 RUN pip install pip --upgrade |
| 98 RUN pip install virtualenv tox yattag |
| 99 |
| 100 ################## |
| 101 # Prepare ccache |
| 102 |
| 103 RUN ln -s /usr/bin/ccache /usr/local/bin/gcc |
| 104 RUN ln -s /usr/bin/ccache /usr/local/bin/g++ |
| 105 RUN ln -s /usr/bin/ccache /usr/local/bin/cc |
| 106 RUN ln -s /usr/bin/ccache /usr/local/bin/c++ |
| 107 RUN ln -s /usr/bin/ccache /usr/local/bin/clang |
| 108 RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ |
| 109 |
| 110 # Define the default command. |
| 111 CMD ["bash"] |
OLD | NEW |