Tianon Gravi
af4cd1a218
Make "strip" in "docker-php-ext-install" conditional on "ZEND_DEBUG_BUILD"
...
Co-authored-by: Michael Voříšek <mvorisek@mvorisek.cz>
2022-03-24 14:53:29 -07:00
Tianon Gravi
b2c6b85e5a
Add stripping to installed extensions
2021-10-12 14:01:21 -07:00
Joe Ferguson
a041c4250b
Add ini-name
to ext-install to pass along to ext-enable
...
Support an absolute path for --ini-name
2020-06-02 10:41:14 -07:00
Tianon Gravi
a1ebdc9851
Remove "--virtual" where it's not providing value (and use "apk del --no-network" consistently)
2019-03-04 16:41:05 -08:00
Tianon Gravi
511db0eb59
Fix "ouptut" typo from https://github.com/docker-library/php/pull/497
2017-09-19 17:03:52 -07:00
Joe Ferguson
c7a848cc37
Explain that some modules listed in docker-php-ext-*
scripts are already compiled in
2017-09-19 15:43:41 -07:00
Joe Ferguson
bb4874c9af
Switch CFLAGS to PHP_CFLAGS, so we can keep pie without breaking users
2016-12-12 15:19:57 -08:00
Tianon Gravi
1739456703
Minor whitespace fix
2016-12-06 11:55:48 -08:00
Tianon Gravi
4a30467066
Use "$PWD" for safer save/restore
2016-12-06 11:47:11 -08:00
tyranron
5e605399b6
rm subshell usage in docker-php-ext-install for Alpine ( #322 )
2016-12-06 11:47:11 -08:00
Tianon Gravi
593d50701a
Return backwards compatibility to the way we handle /usr/src/php/ext/* (especially for user-supplied subdirectories looking to utilize docker-php-ext-* for non-core modules)
2016-08-09 14:28:11 -07:00
yosifkit
1a4763005a
Remove extracted php src ( #256 )
...
* Remove php src the right way for lightweight containers.
* Adapt docker-php-ext-* scripts to check exts against /available-exts generated file.
* Improve docker-php-source script
- swap spaces to tabs to match
- use gnu tar for `--strip-components`
- cache known extension list in `/usr/src/`
- remove extra output
* Changes per tianon's comments
2016-07-12 17:12:43 -07:00
Tianon Gravi
1ad06eced2
Adjust "docker-php-ext-configure" to also install deps, but have "docker-php-ext-install" remove them if and only if it was "docker-php-ext-*" which installed them.
2016-06-06 11:01:36 -07:00
Tianon Gravi
d1c1222433
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 14:28:40 -07:00
Natanael Copa
e3db777ec6
Install build time deps from docker-php-ext-install for alpine
...
We don't need the build dependencies during runtime, so we temporarily
install them when building extension. This reduces image size with 50%.
We also provide a PHPIZE_DEPS environment variable with the needed deps.
2016-05-20 16:17:09 +02:00
Tianon Gravi
3bf5b82235
Convert all Dockerfiles to be template-based, and resync a few minor bits of Alpine and Debian (libedit in both, no recode in either, POSIX shell versions of docker-php-ext-* scripts for all)
2016-03-18 10:57:31 -07:00
Tianon Gravi
22a9b8efa5
Allow a "-j" or "--jobs" argument to "docker-php-ext-install" to speed up extension building
2015-12-09 11:11:05 -08:00
Tianon Gravi
fef9f6ec8a
Add new "docker-php-ext-enable" script for more intelligent module enabling
...
This also updates `docker-php-ext-install` to invoke this script properly after successful extension compilation.
If modules are determined to already be enabled, it'll skip them appropriately.
This removes simple warnings like `PHP Warning: Module 'curl' already loaded in Unknown on line 0`, and enables things like `pecl install mongo && docker-php-ext-enable mongo`.
2015-08-04 16:04:25 -07:00
Tianon Gravi
cb9322a837
Whoops, use $ini consistently O:)
2015-05-28 12:43:03 -07:00
Jared Markell
58c3fd175c
Load opcache as a zend_extension.
2014-11-20 15:08:14 -08:00
Tianon Gravi
2c5880107a
Add new docker-php-ext-*
scripts for magic
...
For example, the following makes WordPress work:
```Dockerfile
RUN apt-get update && apt-get install -y libpng12-dev && rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-install gd \
&& apt-get purge --auto-remove -y libpng12-dev
RUN docker-php-ext-install mysqli
```
2014-11-11 13:17:28 -07:00