Skip to content

Commit 3c9b688

Browse files
committed
Fix docker images build to handle old linux distributions
1 parent 0978095 commit 3c9b688

File tree

9 files changed

+688
-75
lines changed

9 files changed

+688
-75
lines changed

.docker/php53/Dockerfile

+61-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
1-
FROM buildpack-deps:jessie
1+
FROM buildpack-deps:jessie as php53
22

33
ENV PHP_VERSION 5.3.29
44

5+
RUN set -eux; \
6+
codename='jessie'; \
7+
{ \
8+
echo "deb http://archive.debian.org/debian ${codename} main"; \
9+
echo "deb http://archive.debian.org/debian ${codename}-backports main"; \
10+
echo "deb http://archive.debian.org/debian-security ${codename}/updates main"; \
11+
} > /etc/apt/sources.list;
12+
513
# php 5.3 needs older autoconf
614
RUN set -eux; \
715
\
816
apt-get update; \
9-
apt-get install -y \
17+
apt-get install -y --force-yes --no-upgrade --no-install-recommends \
1018
curl \
1119
autoconf2.13 \
1220
; \
@@ -18,7 +26,7 @@ RUN set -eux; \
1826
dpkg -i bison_2.7.1.dfsg-1_amd64.deb; \
1927
rm *.deb; \
2028
\
21-
curl -sSLf "https://php.net/get/php-$PHP_VERSION.tar.bz2/from/this/mirror" -o php.tar.bz2; \
29+
curl --insecure -sSLf "https://php.net/get/php-$PHP_VERSION.tar.bz2/from/this/mirror" -o php.tar.bz2; \
2230
echo 'c4e1cf6972b2a9c7f2777a18497d83bf713cdbecabb65d3ff62ba441aebb0091 php.tar.bz2' | sha256sum -cw --status; \
2331
\
2432
mkdir -p /usr/src/php; \
@@ -32,6 +40,8 @@ RUN set -eux; \
3240
--with-pdo-mysql \
3341
--with-zlib \
3442
--enable-mbstring \
43+
--with-openssl=/usr \
44+
--with-libdir=lib/x86_64-linux-gnu \
3545
; \
3646
make -j"$(nproc)"; \
3747
make install; \
@@ -40,9 +50,56 @@ RUN set -eux; \
4050
bison \
4151
libbison-dev \
4252
; \
43-
apt-get purge -y --auto-remove \
53+
apt-get purge -y --force-yes --auto-remove \
4454
autoconf2.13 \
4555
; \
4656
rm -r /usr/src/php
4757

4858
CMD ["php", "-a"]
59+
60+
FROM php53
61+
62+
# Install APC PHP extension
63+
#
64+
RUN set -eux; \
65+
\
66+
pecl install apc-3.1.13; \
67+
echo 'extension=apc.so' >> /usr/local/lib/php.ini; \
68+
\
69+
rm -r /tmp/pear;
70+
71+
# Install composer
72+
#
73+
RUN set -eux; \
74+
composerVersion='1.10.27'; \
75+
installerUrl='https://raw.githubusercontent.com/composer/getcomposer.org/a19025d6c0a1ff9fc1fac341128b2823193be462/web/installer'; \
76+
\
77+
curl --insecure -sSLf "${installerUrl}" -o /usr/local/bin/composer-installer.php; \
78+
echo '203196aedb1a3b0f563363796bbf6f647a4f8c2419bc1dfc5aa45adc1725025d /usr/local/bin/composer-installer.php' \
79+
| sha256sum -cw --status; \
80+
\
81+
{ \
82+
echo '#! /usr/bin/env php'; \
83+
cat /usr/local/bin/composer-installer.php; \
84+
} > /usr/local/bin/composer-installer; \
85+
rm /usr/local/bin/composer-installer.php; \
86+
chmod +x /usr/local/bin/composer-installer; \
87+
\
88+
composer-installer \
89+
--disable-tls \
90+
--version="${composerVersion}" \
91+
--filename=composer \
92+
--install-dir=/usr/local/bin \
93+
; \
94+
\
95+
echo '230d28fb29f3c6c07ab2382390bef313e36de17868b2bd23b2e070554cae23d2 /usr/local/bin/composer' \
96+
| sha256sum -cw --status; \
97+
\
98+
composer --version; \
99+
\
100+
apt-get update; \
101+
apt-get install -y --force-yes --no-upgrade --no-install-recommends \
102+
git \
103+
; \
104+
rm -r /var/lib/apt/lists/*; \
105+
:;

.docker/php54/Dockerfile

+87
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,92 @@
11
FROM php:5.4-cli
22

3+
RUN set -eux; \
4+
codename='jessie'; \
5+
{ \
6+
echo "deb http://archive.debian.org/debian ${codename} main"; \
7+
echo "deb http://archive.debian.org/debian ${codename}-backports main"; \
8+
echo "deb http://archive.debian.org/debian-security ${codename}/updates main"; \
9+
} > /etc/apt/sources.list;
10+
11+
RUN set -eux; \
12+
apt-get update; \
13+
apt-get install -y --force-yes --no-upgrade --no-install-recommends \
14+
ca-certificates \
15+
; \
16+
\
17+
apt-get clean; \
18+
rm -rf /var/lib/apt/lists/*; \
19+
:;
20+
321
RUN docker-php-ext-install pdo
422
RUN docker-php-ext-install pdo_mysql
523
RUN docker-php-ext-install mbstring
24+
25+
# Install APC PHP extension
26+
#
27+
RUN set -eux; \
28+
pecl install apc-3.1.13; \
29+
docker-php-ext-enable apc; \
30+
rm -r /tmp/pear;
31+
32+
# Install memcache PHP extension
33+
#
34+
ARG MEMCACHE_VERSION
35+
RUN set -eux; \
36+
buildDeps=' \
37+
libzip-dev \
38+
'; \
39+
apt-get update; \
40+
apt-get install -y --force-yes --no-upgrade --no-install-recommends \
41+
$buildDeps \
42+
; \
43+
\
44+
pecl install memcache-${MEMCACHE_VERSION}; \
45+
docker-php-ext-enable memcache; \
46+
\
47+
apt-get purge -y --force-yes --auto-remove -o APT::AutoRemove::RecommendsImportant=true \
48+
$buildDeps \
49+
; \
50+
apt-get clean; \
51+
rm -rf /var/lib/apt/lists/*; \
52+
rm -r /tmp/pear
53+
54+
# Install composer
55+
#
56+
RUN set -eux; \
57+
composerVersion='1.10.27'; \
58+
installerUrl='https://raw.githubusercontent.com/composer/getcomposer.org/a19025d6c0a1ff9fc1fac341128b2823193be462/web/installer'; \
59+
\
60+
curl --insecure -sSLf "${installerUrl}" -o /usr/local/bin/composer-installer.php; \
61+
echo '203196aedb1a3b0f563363796bbf6f647a4f8c2419bc1dfc5aa45adc1725025d /usr/local/bin/composer-installer.php' \
62+
| sha256sum -cw --status; \
63+
\
64+
{ \
65+
echo '#! /usr/bin/env php'; \
66+
cat /usr/local/bin/composer-installer.php; \
67+
} > /usr/local/bin/composer-installer; \
68+
rm /usr/local/bin/composer-installer.php; \
69+
chmod +x /usr/local/bin/composer-installer; \
70+
\
71+
composer-installer \
72+
--disable-tls \
73+
--version="${composerVersion}" \
74+
--filename=composer \
75+
--install-dir=/usr/local/bin \
76+
; \
77+
\
78+
echo '230d28fb29f3c6c07ab2382390bef313e36de17868b2bd23b2e070554cae23d2 /usr/local/bin/composer' \
79+
| sha256sum -cw --status; \
80+
\
81+
composer --version; \
82+
\
83+
apt-get update; \
84+
apt-get install -y --force-yes --no-upgrade --no-install-recommends \
85+
git \
86+
libzip-dev \
87+
unzip \
88+
; \
89+
rm -r /var/lib/apt/lists/*; \
90+
\
91+
docker-php-ext-install zip; \
92+
:;

.docker/php55_71/Dockerfile

+92
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,98 @@
11
ARG PHP_TAG
22
FROM php:${PHP_TAG}
33

4+
RUN set -eux; \
5+
codename='jessie'; \
6+
{ \
7+
echo "deb http://archive.debian.org/debian ${codename} main"; \
8+
echo "deb http://archive.debian.org/debian ${codename}-backports main"; \
9+
echo "deb http://archive.debian.org/debian-security ${codename}/updates main"; \
10+
} > /etc/apt/sources.list;
11+
12+
RUN set -eux; \
13+
apt-get update; \
14+
apt-get install -y --force-yes --no-upgrade --no-install-recommends \
15+
ca-certificates \
16+
; \
17+
\
18+
apt-get clean; \
19+
rm -rf /var/lib/apt/lists/*; \
20+
:;
21+
422
RUN docker-php-ext-install pdo
523
RUN docker-php-ext-install pdo_mysql
624
RUN docker-php-ext-install mbstring
25+
26+
# Install APCu PHP extension
27+
#
28+
ARG APCU_VERSION
29+
RUN set -eux; \
30+
\
31+
test x"" = x"${APCU_VERSION}" || { \
32+
pecl install apcu-${APCU_VERSION}; \
33+
docker-php-ext-enable apcu; \
34+
\
35+
rm -r /tmp/pear; \
36+
}
37+
38+
# Install memcache PHP extension
39+
#
40+
ARG MEMCACHE_VERSION
41+
RUN set -eux; \
42+
buildDeps=' \
43+
libzip-dev \
44+
'; \
45+
apt-get update; \
46+
apt-get install -y --force-yes --no-upgrade --no-install-recommends \
47+
$buildDeps \
48+
; \
49+
\
50+
pecl install memcache-${MEMCACHE_VERSION}; \
51+
docker-php-ext-enable memcache; \
52+
\
53+
apt-get purge -y --force-yes --auto-remove -o APT::AutoRemove::RecommendsImportant=true \
54+
$buildDeps \
55+
; \
56+
apt-get clean; \
57+
rm -rf /var/lib/apt/lists/*; \
58+
rm -r /tmp/pear
59+
60+
# Install composer
61+
#
62+
RUN set -eux; \
63+
composerVersion='1.10.27'; \
64+
installerUrl='https://raw.githubusercontent.com/composer/getcomposer.org/a19025d6c0a1ff9fc1fac341128b2823193be462/web/installer'; \
65+
\
66+
curl --insecure -sSLf "${installerUrl}" -o /usr/local/bin/composer-installer.php; \
67+
echo '203196aedb1a3b0f563363796bbf6f647a4f8c2419bc1dfc5aa45adc1725025d /usr/local/bin/composer-installer.php' \
68+
| sha256sum -cw --status; \
69+
\
70+
{ \
71+
echo '#! /usr/bin/env php'; \
72+
cat /usr/local/bin/composer-installer.php; \
73+
} > /usr/local/bin/composer-installer; \
74+
rm /usr/local/bin/composer-installer.php; \
75+
chmod +x /usr/local/bin/composer-installer; \
76+
\
77+
composer-installer \
78+
--disable-tls \
79+
--version="${composerVersion}" \
80+
--filename=composer \
81+
--install-dir=/usr/local/bin \
82+
; \
83+
\
84+
echo '230d28fb29f3c6c07ab2382390bef313e36de17868b2bd23b2e070554cae23d2 /usr/local/bin/composer' \
85+
| sha256sum -cw --status; \
86+
\
87+
composer --version; \
88+
\
89+
apt-get update; \
90+
apt-get install -y --force-yes --no-upgrade --no-install-recommends \
91+
git \
92+
libzip-dev \
93+
unzip \
94+
; \
95+
rm -r /var/lib/apt/lists/*; \
96+
\
97+
docker-php-ext-install zip; \
98+
:;

.docker/php72_73/Dockerfile

+74
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,40 @@ RUN docker-php-ext-install pdo
55
RUN docker-php-ext-install pdo_mysql
66
RUN docker-php-ext-install mbstring
77

8+
# Install APCu PHP extension
9+
#
10+
ARG APCU_VERSION
11+
RUN set -eux; \
12+
\
13+
test x"" = x"${APCU_VERSION}" || { \
14+
pecl install apcu-${APCU_VERSION}; \
15+
docker-php-ext-enable apcu; \
16+
\
17+
rm -r /tmp/pear; \
18+
}
19+
20+
# Install memcache PHP extension
21+
#
22+
ARG MEMCACHE_VERSION
23+
RUN set -eux; \
24+
buildDeps=' \
25+
libzip-dev \
26+
'; \
27+
apt-get update; \
28+
apt-get install -y --force-yes --no-upgrade --no-install-recommends \
29+
$buildDeps \
30+
; \
31+
\
32+
pecl install memcache-${MEMCACHE_VERSION}; \
33+
docker-php-ext-enable memcache; \
34+
\
35+
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=true \
36+
$buildDeps \
37+
; \
38+
apt-get clean; \
39+
rm -rf /var/lib/apt/lists/*; \
40+
rm -r /tmp/pear
41+
842
# For consistent mime type file guesser
943
RUN set -eux; \
1044
distFilePath=`which file`; \
@@ -20,3 +54,43 @@ RUN set -eux; \
2054
\
2155
file /bin/ls --mime | grep application/x-executable; \
2256
:;
57+
58+
# Install composer
59+
#
60+
RUN set -eux; \
61+
composerVersion='1.10.27'; \
62+
installerUrl='https://raw.githubusercontent.com/composer/getcomposer.org/a19025d6c0a1ff9fc1fac341128b2823193be462/web/installer'; \
63+
\
64+
curl --insecure -sSLf "${installerUrl}" -o /usr/local/bin/composer-installer.php; \
65+
echo '203196aedb1a3b0f563363796bbf6f647a4f8c2419bc1dfc5aa45adc1725025d /usr/local/bin/composer-installer.php' \
66+
| sha256sum -cw --status; \
67+
\
68+
{ \
69+
echo '#! /usr/bin/env php'; \
70+
cat /usr/local/bin/composer-installer.php; \
71+
} > /usr/local/bin/composer-installer; \
72+
rm /usr/local/bin/composer-installer.php; \
73+
chmod +x /usr/local/bin/composer-installer; \
74+
\
75+
composer-installer \
76+
--disable-tls \
77+
--version="${composerVersion}" \
78+
--filename=composer \
79+
--install-dir=/usr/local/bin \
80+
; \
81+
\
82+
echo '230d28fb29f3c6c07ab2382390bef313e36de17868b2bd23b2e070554cae23d2 /usr/local/bin/composer' \
83+
| sha256sum -cw --status; \
84+
\
85+
composer --version; \
86+
\
87+
apt-get update; \
88+
apt-get install -y --force-yes --no-upgrade --no-install-recommends \
89+
git \
90+
libzip-dev \
91+
unzip \
92+
; \
93+
rm -r /var/lib/apt/lists/*; \
94+
\
95+
docker-php-ext-install zip; \
96+
:;

0 commit comments

Comments
 (0)