Skip to content

Commit bcf996d

Browse files
committed
Refactoring for template usage and updates since the original PR
1 parent d0f0731 commit bcf996d

13 files changed

+520
-145
lines changed

.travis.yml

+2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ services: docker
44
env:
55
- VARIANT=php5.6/apache
66
- VARIANT=php5.6/fpm
7+
- VARIANT=php5.6/fpm-alpine
78
- VARIANT=php7.0/apache
89
- VARIANT=php7.0/fpm
10+
- VARIANT=php7.0/fpm-alpine
911

1012
install:
1113
- git clone https://github.com/docker-library/official-images.git ~/official-images

Dockerfile-alpine.template

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
FROM php:%%PHP_VERSION%%-%%VARIANT%%
2+
3+
# our docker-entrypoint.sh is a bit involved
4+
RUN apk add --no-cache bash
5+
# in theory, it is POSIX-compliant, but first priority is a working, consistent image
6+
7+
# install the PHP extensions we need
8+
RUN set -ex; \
9+
\
10+
apk add --no-cache --virtual .build-deps \
11+
libjpeg-turbo-dev \
12+
libpng-dev \
13+
; \
14+
\
15+
docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \
16+
docker-php-ext-install gd mysqli opcache; \
17+
\
18+
runDeps="$( \
19+
scanelf --needed --nobanner --recursive \
20+
/usr/local/lib/php/extensions \
21+
| awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \
22+
| sort -u \
23+
| xargs -r apk info --installed \
24+
| sort -u \
25+
)"; \
26+
apk add --virtual .wordpress-phpexts-rundeps $runDeps; \
27+
apk del .build-deps
28+
29+
# set recommended PHP.ini settings
30+
# see https://secure.php.net/manual/en/opcache.installation.php
31+
RUN { \
32+
echo 'opcache.memory_consumption=128'; \
33+
echo 'opcache.interned_strings_buffer=8'; \
34+
echo 'opcache.max_accelerated_files=4000'; \
35+
echo 'opcache.revalidate_freq=2'; \
36+
echo 'opcache.fast_shutdown=1'; \
37+
echo 'opcache.enable_cli=1'; \
38+
} > /usr/local/etc/php/conf.d/opcache-recommended.ini
39+
%%VARIANT_EXTRAS%%
40+
VOLUME /var/www/html
41+
42+
ENV WORDPRESS_VERSION %%WORDPRESS_VERSION%%
43+
ENV WORDPRESS_SHA1 %%WORDPRESS_SHA1%%
44+
45+
RUN set -ex; \
46+
curl -o wordpress.tar.gz -fSL "https://wordpress.org/wordpress-${WORDPRESS_VERSION}.tar.gz"; \
47+
echo "$WORDPRESS_SHA1 *wordpress.tar.gz" | sha1sum -c -; \
48+
# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress
49+
tar -xzf wordpress.tar.gz -C /usr/src/; \
50+
rm wordpress.tar.gz; \
51+
chown -R www-data:www-data /usr/src/wordpress
52+
53+
COPY docker-entrypoint.sh /usr/local/bin/
54+
55+
ENTRYPOINT ["docker-entrypoint.sh"]
56+
CMD ["%%CMD%%"]
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
FROM php:%%PHP_VERSION%%-%%VARIANT%%
22

33
# install the PHP extensions we need
4-
RUN apt-get update && apt-get install -y libpng12-dev libjpeg-dev && rm -rf /var/lib/apt/lists/* \
5-
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
6-
&& docker-php-ext-install gd mysqli opcache
4+
RUN set -ex; \
5+
\
6+
apt-get update; \
7+
apt-get install -y \
8+
libjpeg-dev \
9+
libpng12-dev \
10+
; \
11+
rm -rf /var/lib/apt/lists/*; \
12+
\
13+
docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \
14+
docker-php-ext-install gd mysqli opcache
15+
# TODO consider removing the *-dev deps and only keeping the necessary lib* packages
716

817
# set recommended PHP.ini settings
918
# see https://secure.php.net/manual/en/opcache.installation.php
@@ -21,17 +30,15 @@ VOLUME /var/www/html
2130
ENV WORDPRESS_VERSION %%WORDPRESS_VERSION%%
2231
ENV WORDPRESS_SHA1 %%WORDPRESS_SHA1%%
2332

24-
RUN set -x \
25-
&& curl -o wordpress.tar.gz -fSL "https://wordpress.org/wordpress-${WORDPRESS_VERSION}.tar.gz" \
26-
&& echo "$WORDPRESS_SHA1 *wordpress.tar.gz" | sha1sum -c - \
33+
RUN set -ex; \
34+
curl -o wordpress.tar.gz -fSL "https://wordpress.org/wordpress-${WORDPRESS_VERSION}.tar.gz"; \
35+
echo "$WORDPRESS_SHA1 *wordpress.tar.gz" | sha1sum -c -; \
2736
# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress
28-
&& tar -xzf wordpress.tar.gz -C /usr/src/ \
29-
&& rm wordpress.tar.gz \
30-
&& chown -R www-data:www-data /usr/src/wordpress
37+
tar -xzf wordpress.tar.gz -C /usr/src/; \
38+
rm wordpress.tar.gz; \
39+
chown -R www-data:www-data /usr/src/wordpress
3140

3241
COPY docker-entrypoint.sh /usr/local/bin/
33-
RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat
3442

35-
# ENTRYPOINT resets CMD
3643
ENTRYPOINT ["docker-entrypoint.sh"]
3744
CMD ["%%CMD%%"]

fpm/alpine/Dockerfile

-49
This file was deleted.

php5.6/apache/Dockerfile

+18-11
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
FROM php:5.6-apache
22

33
# install the PHP extensions we need
4-
RUN apt-get update && apt-get install -y libpng12-dev libjpeg-dev && rm -rf /var/lib/apt/lists/* \
5-
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
6-
&& docker-php-ext-install gd mysqli opcache
4+
RUN set -ex; \
5+
\
6+
apt-get update; \
7+
apt-get install -y \
8+
libjpeg-dev \
9+
libpng12-dev \
10+
; \
11+
rm -rf /var/lib/apt/lists/*; \
12+
\
13+
docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \
14+
docker-php-ext-install gd mysqli opcache
15+
# TODO consider removing the *-dev deps and only keeping the necessary lib* packages
716

817
# set recommended PHP.ini settings
918
# see https://secure.php.net/manual/en/opcache.installation.php
@@ -23,17 +32,15 @@ VOLUME /var/www/html
2332
ENV WORDPRESS_VERSION 4.7
2433
ENV WORDPRESS_SHA1 1e14144c4db71421dc4ed22f94c3914dfc3b7020
2534

26-
RUN set -x \
27-
&& curl -o wordpress.tar.gz -fSL "https://wordpress.org/wordpress-${WORDPRESS_VERSION}.tar.gz" \
28-
&& echo "$WORDPRESS_SHA1 *wordpress.tar.gz" | sha1sum -c - \
35+
RUN set -ex; \
36+
curl -o wordpress.tar.gz -fSL "https://wordpress.org/wordpress-${WORDPRESS_VERSION}.tar.gz"; \
37+
echo "$WORDPRESS_SHA1 *wordpress.tar.gz" | sha1sum -c -; \
2938
# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress
30-
&& tar -xzf wordpress.tar.gz -C /usr/src/ \
31-
&& rm wordpress.tar.gz \
32-
&& chown -R www-data:www-data /usr/src/wordpress
39+
tar -xzf wordpress.tar.gz -C /usr/src/; \
40+
rm wordpress.tar.gz; \
41+
chown -R www-data:www-data /usr/src/wordpress
3342

3443
COPY docker-entrypoint.sh /usr/local/bin/
35-
RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat
3644

37-
# ENTRYPOINT resets CMD
3845
ENTRYPOINT ["docker-entrypoint.sh"]
3946
CMD ["apache2-foreground"]

php5.6/fpm-alpine/Dockerfile

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
FROM php:5.6-fpm-alpine
2+
3+
# our docker-entrypoint.sh is a bit involved
4+
RUN apk add --no-cache bash
5+
# in theory, it is POSIX-compliant, but first priority is a working, consistent image
6+
7+
# install the PHP extensions we need
8+
RUN set -ex; \
9+
\
10+
apk add --no-cache --virtual .build-deps \
11+
libjpeg-turbo-dev \
12+
libpng-dev \
13+
; \
14+
\
15+
docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \
16+
docker-php-ext-install gd mysqli opcache; \
17+
\
18+
runDeps="$( \
19+
scanelf --needed --nobanner --recursive \
20+
/usr/local/lib/php/extensions \
21+
| awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \
22+
| sort -u \
23+
| xargs -r apk info --installed \
24+
| sort -u \
25+
)"; \
26+
apk add --virtual .wordpress-phpexts-rundeps $runDeps; \
27+
apk del .build-deps
28+
29+
# set recommended PHP.ini settings
30+
# see https://secure.php.net/manual/en/opcache.installation.php
31+
RUN { \
32+
echo 'opcache.memory_consumption=128'; \
33+
echo 'opcache.interned_strings_buffer=8'; \
34+
echo 'opcache.max_accelerated_files=4000'; \
35+
echo 'opcache.revalidate_freq=2'; \
36+
echo 'opcache.fast_shutdown=1'; \
37+
echo 'opcache.enable_cli=1'; \
38+
} > /usr/local/etc/php/conf.d/opcache-recommended.ini
39+
40+
VOLUME /var/www/html
41+
42+
ENV WORDPRESS_VERSION 4.7
43+
ENV WORDPRESS_SHA1 1e14144c4db71421dc4ed22f94c3914dfc3b7020
44+
45+
RUN set -ex; \
46+
curl -o wordpress.tar.gz -fSL "https://wordpress.org/wordpress-${WORDPRESS_VERSION}.tar.gz"; \
47+
echo "$WORDPRESS_SHA1 *wordpress.tar.gz" | sha1sum -c -; \
48+
# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress
49+
tar -xzf wordpress.tar.gz -C /usr/src/; \
50+
rm wordpress.tar.gz; \
51+
chown -R www-data:www-data /usr/src/wordpress
52+
53+
COPY docker-entrypoint.sh /usr/local/bin/
54+
55+
ENTRYPOINT ["docker-entrypoint.sh"]
56+
CMD ["php-fpm"]

0 commit comments

Comments
 (0)