Dockerfile 4.99 KB
Newer Older
1
FROM debian:jessie
2 3 4

# Install dependencies.  We start with the basic ones require to build protoc
# and the C++ build
5
RUN apt-get update && apt-get install -y \
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
  autoconf \
  autotools-dev \
  build-essential \
  bzip2 \
  ccache \
  curl \
  gcc \
  git \
  libc6 \
  libc6-dbg \
  libc6-dev \
  libgtest-dev \
  libtool \
  make \
  parallel \
  time \
  wget \
  && apt-get clean

# Install php dependencies
RUN apt-get clean && apt-get update && apt-get install -y --force-yes \
27 28 29 30 31
  php5 \
  libcurl4-openssl-dev \
  libgmp-dev \
  libgmp3-dev \
  libssl-dev \
32
  libxml2-dev \
33 34 35
  unzip \
  zlib1g-dev \
  pkg-config \
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
  && apt-get clean

# Install other dependencies
RUN ln -sf /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
RUN wget http://ftp.gnu.org/gnu/bison/bison-2.6.4.tar.gz -O /var/local/bison-2.6.4.tar.gz
RUN cd /var/local \
  && tar -zxvf bison-2.6.4.tar.gz \
  && cd /var/local/bison-2.6.4 \
  && ./configure \
  && make \
  && make install

# Install composer
RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer

# Download php source code
RUN git clone https://github.com/php/php-src

# php 5.5
RUN cd php-src \
  && git checkout PHP-5.5.38 \
  && ./buildconf --force
RUN cd php-src \
60 61 62 63 64 65
  && ./configure \
  --enable-bcmath \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-5.5 \
66 67 68 69
  && make \
  && make install \
  && make clean
RUN cd php-src \
70 71 72 73 74 75
  && ./configure \
  --enable-maintainer-zts \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-5.5-zts \
76 77 78 79 80 81
  && make \
  && make install \
  && make clean

RUN wget -O phpunit https://phar.phpunit.de/phpunit-4.phar \
  && chmod +x phpunit \
Paul Yang's avatar
Paul Yang committed
82 83
  && cp phpunit /usr/local/php-5.5/bin \
  && mv phpunit /usr/local/php-5.5-zts/bin
84 85 86 87 88 89

# php 5.6
RUN cd php-src \
  && git checkout PHP-5.6.39 \
  && ./buildconf --force
RUN cd php-src \
90 91 92 93 94 95
  && ./configure \
  --enable-bcmath \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-5.6 \
96 97 98 99
  && make \
  && make install \
  && make clean
RUN cd php-src \
100 101 102 103 104 105
  && ./configure \
  --enable-maintainer-zts \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-5.6-zts \
106 107 108 109 110 111
  && make \
  && make install \
  && make clean

RUN wget -O phpunit https://phar.phpunit.de/phpunit-5.phar \
  && chmod +x phpunit \
Paul Yang's avatar
Paul Yang committed
112 113
  && cp phpunit /usr/local/php-5.6/bin \
  && mv phpunit /usr/local/php-5.6-zts/bin
114 115 116 117 118 119

# php 7.0
RUN cd php-src \
  && git checkout PHP-7.0.33 \
  && ./buildconf --force
RUN cd php-src \
120 121 122 123 124 125
  && ./configure \
  --enable-bcmath \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-7.0 \
126 127 128 129
  && make \
  && make install \
  && make clean
RUN cd php-src \
130 131 132 133 134 135
  && ./configure \
  --enable-maintainer-zts \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-7.0-zts \
136 137 138 139 140 141
  && make \
  && make install \
  && make clean

RUN wget -O phpunit https://phar.phpunit.de/phpunit-6.phar \
  && chmod +x phpunit \
Paul Yang's avatar
Paul Yang committed
142 143
  && cp phpunit /usr/local/php-7.0/bin \
  && mv phpunit /usr/local/php-7.0-zts/bin
144 145 146 147 148 149

# php 7.1
RUN cd php-src \
  && git checkout PHP-7.1.25 \
  && ./buildconf --force
RUN cd php-src \
150 151 152 153 154 155
  && ./configure \
  --enable-bcmath \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-7.1 \
156 157 158 159
  && make \
  && make install \
  && make clean
RUN cd php-src \
160 161 162 163 164 165
  && ./configure \
  --enable-maintainer-zts \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-7.1-zts \
166 167 168 169 170 171
  && make \
  && make install \
  && make clean

RUN wget -O phpunit https://phar.phpunit.de/phpunit-7.phar \
  && chmod +x phpunit \
Paul Yang's avatar
Paul Yang committed
172 173
  && cp phpunit /usr/local/php-7.1/bin \
  && mv phpunit /usr/local/php-7.1-zts/bin
174 175 176 177 178 179

# php 7.2
RUN cd php-src \
  && git checkout PHP-7.2.13 \
  && ./buildconf --force
RUN cd php-src \
180 181 182 183 184 185
  && ./configure \
  --enable-bcmath \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-7.2 \
186 187 188 189
  && make \
  && make install \
  && make clean
RUN cd php-src \
190 191 192 193 194 195
  && ./configure \
  --enable-maintainer-zts \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-7.2-zts \
196 197 198 199 200 201
  && make \
  && make install \
  && make clean

RUN wget -O phpunit https://phar.phpunit.de/phpunit-7.phar \
  && chmod +x phpunit \
Paul Yang's avatar
Paul Yang committed
202 203
  && cp phpunit /usr/local/php-7.2/bin \
  && mv phpunit /usr/local/php-7.2-zts/bin
204 205 206 207 208 209

# php 7.3
RUN cd php-src \
  && git checkout PHP-7.3.0 \
  && ./buildconf --force
RUN cd php-src \
210 211 212 213 214 215
  && ./configure \
  --enable-bcmath \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-7.3 \
216 217 218 219
  && make \
  && make install \
  && make clean
RUN cd php-src \
220 221 222 223 224 225
  && ./configure \
  --enable-maintainer-zts \
  --with-gmp \
  --with-openssl \
  --with-zlib \
  --prefix=/usr/local/php-7.3-zts \
226 227 228 229 230 231
  && make \
  && make install \
  && make clean

RUN wget -O phpunit https://phar.phpunit.de/phpunit-7.phar \
  && chmod +x phpunit \
Paul Yang's avatar
Paul Yang committed
232 233 234 235 236 237 238
  && cp phpunit /usr/local/php-7.3/bin \
  && mv phpunit /usr/local/php-7.3-zts/bin

# Install php dependencies
RUN apt-get clean && apt-get update && apt-get install -y --force-yes \
  valgrind \
  && apt-get clean