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 |