php/docker-php-ext-install

80 lines
1.5 KiB
Plaintext
Raw Normal View History

#!/bin/sh
set -e
cd /usr/src/php/ext
usage() {
echo "usage: $0 [-jN] ext-name [ext-name ...]"
echo " ie: $0 gd mysqli"
echo " $0 pdo pdo_mysql"
echo " $0 -j5 gd mbstring mysqli pdo pdo_mysql shmop"
echo
echo 'if custom ./configure arguments are necessary, see docker-php-ext-configure'
echo
echo 'Possible values for ext-name:'
echo $(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | cut -d/ -f6 | sort)
}
opts="$(getopt -o 'h?j:' --long 'help,jobs:' -- "$@" || { usage >&2 && false; })"
eval set -- "$opts"
j=1
while true; do
flag="$1"
shift
case "$flag" in
--help|-h|'-?') usage && exit 0 ;;
--jobs|-j) j="$1" && shift ;;
--) break ;;
*)
{
echo "error: unknown flag: $flag"
usage
} >&2
exit 1
;;
esac
done
exts=
for ext; do
if [ -z "$ext" ]; then
continue
fi
if [ ! -d "$ext" ]; then
echo >&2 "error: $(pwd -P)/$ext does not exist"
echo >&2
usage >&2
exit 1
fi
exts="$exts $ext"
done
if [ -z "$exts" ]; then
usage >&2
exit 1
fi
Adjust PHPIZE_DEPS logic slightly for better cross-environment consistency (and to allow for folks to set "PHPIZE_DEPS=" in order to disable the additional behavior) Full diff from before this change, to show the impact of this commit slightly more clearly: ```diff diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index c3c3d36..60491a0 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -1,7 +1,7 @@ FROM alpine:3.3 -# phpize deps -RUN apk add --no-cache --virtual .phpize-deps \ +# persistent / runtime deps +ENV PHPIZE_DEPS \ autoconf \ file \ g++ \ @@ -10,8 +10,6 @@ RUN apk add --no-cache --virtual .phpize-deps \ make \ pkgconf \ re2c - -# persistent / runtime deps RUN apk add --no-cache --virtual .persistent-deps \ ca-certificates \ curl @@ -39,6 +37,7 @@ ENV PHP_SHA256 %%PHP_SHA256%% RUN set -xe \ && apk add --no-cache --virtual .build-deps \ + $PHPIZE_DEPS \ curl-dev \ gnupg \ libedit-dev \ diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index a95b582..397eee5 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -1,7 +1,7 @@ FROM debian:jessie -# phpize deps -RUN apt-get update && apt-get install -y \ +# persistent / runtime deps +ENV PHPIZE_DEPS \ autoconf \ file \ g++ \ @@ -9,11 +9,9 @@ RUN apt-get update && apt-get install -y \ libc-dev \ make \ pkg-config \ - re2c \ - --no-install-recommends && rm -r /var/lib/apt/lists/* - -# persistent / runtime deps + re2c RUN apt-get update && apt-get install -y \ + $PHPIZE_DEPS \ ca-certificates \ curl \ libedit2 \ diff --git a/docker-php-ext-install b/docker-php-ext-install index 67180a8..eb2380a 100755 --- a/docker-php-ext-install +++ b/docker-php-ext-install @@ -55,6 +55,10 @@ if [ -z "$exts" ]; then exit 1 fi +if [ -e /lib/apk/db/installed ] && [ -n "$PHPIZE_DEPS" ]; then + apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS +fi + for ext in $exts; do ( cd "$ext" @@ -69,3 +73,7 @@ for ext in $exts; do make -j"$j" clean ) done + +if [ -e /lib/apk/db/installed ] && [ -n "$PHPIZE_DEPS" ]; then + apk del .phpize-deps +fi ```
2016-05-23 23:25:24 +02:00
if [ -e /lib/apk/db/installed ] && [ -n "$PHPIZE_DEPS" ]; then
apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS
fi
for ext in $exts; do
(
cd "$ext"
[ -e Makefile ] || docker-php-ext-configure "$ext"
make -j"$j"
make -j"$j" install
find modules \
-maxdepth 1 \
-name '*.so' \
-exec basename '{}' ';' \
| xargs -r docker-php-ext-enable
make -j"$j" clean
)
done
Adjust PHPIZE_DEPS logic slightly for better cross-environment consistency (and to allow for folks to set "PHPIZE_DEPS=" in order to disable the additional behavior) Full diff from before this change, to show the impact of this commit slightly more clearly: ```diff diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index c3c3d36..60491a0 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -1,7 +1,7 @@ FROM alpine:3.3 -# phpize deps -RUN apk add --no-cache --virtual .phpize-deps \ +# persistent / runtime deps +ENV PHPIZE_DEPS \ autoconf \ file \ g++ \ @@ -10,8 +10,6 @@ RUN apk add --no-cache --virtual .phpize-deps \ make \ pkgconf \ re2c - -# persistent / runtime deps RUN apk add --no-cache --virtual .persistent-deps \ ca-certificates \ curl @@ -39,6 +37,7 @@ ENV PHP_SHA256 %%PHP_SHA256%% RUN set -xe \ && apk add --no-cache --virtual .build-deps \ + $PHPIZE_DEPS \ curl-dev \ gnupg \ libedit-dev \ diff --git a/Dockerfile-debian.template b/Dockerfile-debian.template index a95b582..397eee5 100644 --- a/Dockerfile-debian.template +++ b/Dockerfile-debian.template @@ -1,7 +1,7 @@ FROM debian:jessie -# phpize deps -RUN apt-get update && apt-get install -y \ +# persistent / runtime deps +ENV PHPIZE_DEPS \ autoconf \ file \ g++ \ @@ -9,11 +9,9 @@ RUN apt-get update && apt-get install -y \ libc-dev \ make \ pkg-config \ - re2c \ - --no-install-recommends && rm -r /var/lib/apt/lists/* - -# persistent / runtime deps + re2c RUN apt-get update && apt-get install -y \ + $PHPIZE_DEPS \ ca-certificates \ curl \ libedit2 \ diff --git a/docker-php-ext-install b/docker-php-ext-install index 67180a8..eb2380a 100755 --- a/docker-php-ext-install +++ b/docker-php-ext-install @@ -55,6 +55,10 @@ if [ -z "$exts" ]; then exit 1 fi +if [ -e /lib/apk/db/installed ] && [ -n "$PHPIZE_DEPS" ]; then + apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS +fi + for ext in $exts; do ( cd "$ext" @@ -69,3 +73,7 @@ for ext in $exts; do make -j"$j" clean ) done + +if [ -e /lib/apk/db/installed ] && [ -n "$PHPIZE_DEPS" ]; then + apk del .phpize-deps +fi ```
2016-05-23 23:25:24 +02:00
if [ -e /lib/apk/db/installed ] && [ -n "$PHPIZE_DEPS" ]; then
apk del .phpize-deps
fi