2016-03-18 18:51:01 +01:00
|
|
|
#!/bin/sh
|
2014-11-11 21:17:28 +01:00
|
|
|
set -e
|
|
|
|
|
|
|
|
cd /usr/src/php/ext
|
|
|
|
|
|
|
|
usage() {
|
2015-12-09 20:11:05 +01:00
|
|
|
echo "usage: $0 [-jN] ext-name [ext-name ...]"
|
2014-11-11 21:17:28 +01:00
|
|
|
echo " ie: $0 gd mysqli"
|
|
|
|
echo " $0 pdo pdo_mysql"
|
2015-12-09 20:11:05 +01:00
|
|
|
echo " $0 -j5 gd mbstring mysqli pdo pdo_mysql shmop"
|
2014-11-11 21:17:28 +01:00
|
|
|
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)
|
|
|
|
}
|
|
|
|
|
2015-12-09 20:11:05 +01:00
|
|
|
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
|
|
|
|
|
2016-03-18 18:51:01 +01:00
|
|
|
exts=
|
|
|
|
for ext; do
|
2014-11-11 21:17:28 +01:00
|
|
|
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
|
2016-03-18 18:51:01 +01:00
|
|
|
exts="$exts $ext"
|
2014-11-11 21:17:28 +01:00
|
|
|
done
|
|
|
|
|
2016-03-18 18:51:01 +01:00
|
|
|
if [ -z "$exts" ]; then
|
2014-11-11 21:17:28 +01:00
|
|
|
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
|
2016-05-20 16:11:33 +02:00
|
|
|
apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS
|
|
|
|
fi
|
|
|
|
|
2016-03-18 18:51:01 +01:00
|
|
|
for ext in $exts; do
|
2014-11-11 21:17:28 +01:00
|
|
|
(
|
|
|
|
cd "$ext"
|
|
|
|
[ -e Makefile ] || docker-php-ext-configure "$ext"
|
2015-12-09 20:11:05 +01:00
|
|
|
make -j"$j"
|
|
|
|
make -j"$j" install
|
2016-03-18 18:51:01 +01:00
|
|
|
find modules \
|
|
|
|
-maxdepth 1 \
|
|
|
|
-name '*.so' \
|
|
|
|
-exec basename '{}' ';' \
|
|
|
|
| xargs -r docker-php-ext-enable
|
2015-12-09 20:11:05 +01:00
|
|
|
make -j"$j" clean
|
2014-11-11 21:17:28 +01:00
|
|
|
)
|
|
|
|
done
|
2016-05-20 16:11:33 +02:00
|
|
|
|
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
|
2016-05-20 16:11:33 +02:00
|
|
|
apk del .phpize-deps
|
|
|
|
fi
|