Skip to content

Commit fd6bc7a

Browse files
committed
[PHP] Add zstd
Signed-off-by: Kang Huaishuai <khs1994@khs1994.com>
1 parent 38710a7 commit fd6bc7a

File tree

21 files changed

+288
-163
lines changed

21 files changed

+288
-163
lines changed

dockerfile/php/7.2/alpine/Dockerfile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ ENV PECL_EXTENSION \
5050
# 安装测试版的扩展,可以在扩展名后加 -beta
5151
# xdebug \
5252
yaml \
53+
https://github.com/kjdev/php-ext-zstd/archive/0.9.0.tar.gz \
5354
${PECL_EXTENSION_EXTRA:-}
5455

5556
ARG ALPINE_URL=dl-cdn.alpinelinux.org
@@ -79,6 +80,7 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
7980
${APK_EXTRA:-} \
8081
zlib \
8182
gnu-libiconv \
83+
zstd-libs \
8284
" \
8385
# tidyhtml-libs \
8486
# libxslt \
@@ -105,6 +107,7 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
105107
gettext-dev \
106108
libwebp-dev \
107109
icu-dev \
110+
zstd-dev \
108111
${APK_DEV_EXTRA:-} \
109112
" \
110113
# tidyhtml-dev \
@@ -133,8 +136,9 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
133136
&& pickle install $PHP_EXTENSION -n --defaults --strip \
134137
&& docker-php-source delete \
135138
# 安装 PECL 扩展
136-
&& echo "--enable-redis-igbinary" > /tmp/redis.configure.options \
139+
&& echo "--enable-redis-igbinary --enable-redis-zstd" > /tmp/redis.configure.options \
137140
&& echo "--enable-memcached-igbinary" > /tmp/memcached.configure.options \
141+
&& echo "--with-libzstd" > /tmp/zstd.configure.options \
138142
&& pickle install $PECL_EXTENSION -n --defaults \
139143
--strip --cleanup \
140144
# 默认不启用的扩展

dockerfile/php/7.2/cli/Dockerfile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -338,12 +338,14 @@ RUN --mount=type=bind,from=php:7.2.33-alpine,source=/usr/src,target=/usr/local/s
338338
ENV PECL_BUILD_DEPS \
339339
libmemcached-dev \
340340
yaml-dev \
341-
zlib-dev
341+
zlib-dev \
342+
zstd-dev
342343

343344
ENV PECL_RUN_DEPS \
344345
libmemcached-libs \
345346
yaml \
346-
zlib
347+
zlib \
348+
zstd-libs
347349

348350
ENV PECL_EXTENSION \
349351
mongodb \
@@ -352,6 +354,7 @@ ENV PECL_EXTENSION \
352354
memcached \
353355
# xdebug \
354356
yaml \
357+
https://github.com/kjdev/php-ext-zstd/archive/0.9.0.tar.gz \
355358
${PECL_EXTENSION_EXTRA:-}
356359

357360
RUN --mount=type=bind,from=php:7.2.33-alpine,source=/usr/local/bin,target=/opt/bin,rw \
@@ -362,8 +365,9 @@ RUN --mount=type=bind,from=php:7.2.33-alpine,source=/usr/local/bin,target=/opt/b
362365
&& curl -fsSL -o /usr/local/bin/pickle \
363366
https://github.com/khs1994-php/pickle/releases/download/nightly/pickle-debug.phar \
364367
&& chmod +x /usr/local/bin/pickle \
365-
&& echo "--enable-redis-igbinary" > /tmp/redis.configure.options \
368+
&& echo "--enable-redis-igbinary --enable-redis-zstd" > /tmp/redis.configure.options \
366369
&& echo "--enable-memcached-igbinary" > /tmp/memcached.configure.options \
370+
&& echo "--with-libzstd" > /tmp/zstd.configure.options \
367371
&& pickle install $PECL_EXTENSION -n --defaults --strip --cleanup \
368372
&& pickle install \
369373
xdebug \

dockerfile/php/7.3/alpine/Dockerfile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ ENV PECL_EXTENSION \
5151
# 安装测试版的扩展,可以在扩展名后加 -beta
5252
# xdebug-beta \
5353
yaml \
54+
https://github.com/kjdev/php-ext-zstd/archive/0.9.0.tar.gz \
5455
${PECL_EXTENSION_EXTRA:-}
5556

5657
ARG ALPINE_URL=dl-cdn.alpinelinux.org
@@ -79,6 +80,7 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
7980
c-client \
8081
icu-libs \
8182
gnu-libiconv \
83+
zstd-libs \
8284
${APK_EXTRA:-} \
8385
" \
8486
# tidyhtml-libs \
@@ -106,6 +108,7 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
106108
gettext-dev \
107109
libwebp-dev \
108110
icu-dev \
111+
zstd-dev \
109112
${APK_DEV_EXTRA:-} \
110113
" \
111114
# tidyhtml-dev \
@@ -142,8 +145,9 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
142145
&& pickle install $PHP_EXTENSION -n --defaults --strip \
143146
&& docker-php-source delete \
144147
# 安装 PECL 扩展
145-
&& echo "--enable-redis-igbinary" > /tmp/redis.configure.options \
148+
&& echo "--enable-redis-igbinary --enable-redis-zstd" > /tmp/redis.configure.options \
146149
&& echo "--enable-memcached-igbinary" > /tmp/memcached.configure.options \
150+
&& echo "--with-libzstd" > /tmp/zstd.configure.options \
147151
&& pickle install $PECL_EXTENSION -n --defaults \
148152
--strip --cleanup \
149153
# 默认不启用的扩展

dockerfile/php/7.3/cli/Dockerfile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,12 +339,14 @@ ENV PECL_BUILD_DEPS \
339339
libmemcached-dev \
340340
yaml-dev \
341341
pcre2-dev \
342-
zlib-dev
342+
zlib-dev \
343+
zstd-dev
343344

344345
ENV PECL_RUN_DEPS \
345346
libmemcached-libs \
346347
yaml \
347-
zlib
348+
zlib \
349+
zstd-libs
348350

349351
ENV PECL_EXTENSION \
350352
mongodb \
@@ -353,6 +355,7 @@ ENV PECL_EXTENSION \
353355
memcached \
354356
# xdebug \
355357
yaml \
358+
https://github.com/kjdev/php-ext-zstd/archive/0.9.0.tar.gz \
356359
${PECL_EXTENSION_EXTRA:-}
357360

358361
RUN --mount=type=bind,from=php:7.3.21-alpine,source=/usr/local/bin,target=/opt/bin,rw \
@@ -364,8 +367,9 @@ RUN --mount=type=bind,from=php:7.3.21-alpine,source=/usr/local/bin,target=/opt/b
364367
&& curl -fsSL -o /usr/local/bin/pickle \
365368
https://github.com/khs1994-php/pickle/releases/download/nightly/pickle-debug.phar \
366369
&& chmod +x /usr/local/bin/pickle \
367-
&& echo "--enable-redis-igbinary" > /tmp/redis.configure.options \
370+
&& echo "--enable-redis-igbinary --enable-redis-zstd" > /tmp/redis.configure.options \
368371
&& echo "--enable-memcached-igbinary" > /tmp/memcached.configure.options \
372+
&& echo "--with-libzstd" > /tmp/zstd.configure.options \
369373
&& pickle install $PECL_EXTENSION -n --defaults --strip --cleanup \
370374
&& pickle install \
371375
xdebug \

dockerfile/php/7.4/alpine/Dockerfile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ ENV PECL_EXTENSION \
4949
memcached \
5050
# 安装测试版的扩展,可以在扩展名后加 -beta
5151
# xdebug-beta \
52+
https://github.com/kjdev/php-ext-zstd/archive/0.9.0.tar.gz \
5253
${PECL_EXTENSION_EXTRA:-}
5354

5455
ARG ALPINE_URL=dl-cdn.alpinelinux.org
@@ -76,6 +77,7 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
7677
c-client \
7778
icu-libs \
7879
gnu-libiconv \
80+
zstd-libs \
7981
${APK_EXTRA:-} \
8082
" \
8183
# tidyhtml-libs \
@@ -102,6 +104,7 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
102104
gettext-dev \
103105
libwebp-dev \
104106
icu-dev \
107+
zstd-dev \
105108
${APK_DEV_EXTRA:-} \
106109
" \
107110
# tidyhtml-dev \
@@ -137,8 +140,9 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
137140
&& pickle install $PHP_EXTENSION -n --defaults --strip \
138141
&& docker-php-source delete \
139142
# 安装 PECL 扩展
140-
&& echo "--enable-redis-igbinary" > /tmp/redis.configure.options \
143+
&& echo "--enable-redis-igbinary --enable-redis-zstd" > /tmp/redis.configure.options \
141144
&& echo "--enable-memcached-igbinary" > /tmp/memcached.configure.options \
145+
&& echo "--with-libzstd" > /tmp/zstd.configure.options \
142146
&& pickle install $PECL_EXTENSION -n --defaults \
143147
--strip --cleanup \
144148
# 默认不启用的扩展

dockerfile/php/7.4/cli/Dockerfile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,17 +342,20 @@ RUN --mount=type=bind,from=php:7.4.9-alpine,source=/usr/src,target=/usr/local/sr
342342
ENV PECL_BUILD_DEPS \
343343
libmemcached-dev \
344344
pcre2-dev \
345-
zlib-dev
345+
zlib-dev \
346+
zstd-dev
346347

347348
ENV PECL_RUN_DEPS \
348349
libmemcached-libs \
349-
zlib
350+
zlib \
351+
zstd-libs
350352

351353
ENV PECL_EXTENSION \
352354
igbinary \
353355
redis \
354356
memcached \
355357
# xdebug-beta \
358+
https://github.com/kjdev/php-ext-zstd/archive/0.9.0.tar.gz \
356359
${PECL_EXTENSION_EXTRA:-}
357360

358361
RUN --mount=type=bind,from=php:7.4.9-alpine,source=/usr/local/bin,target=/opt/bin,rw \
@@ -364,8 +367,9 @@ RUN --mount=type=bind,from=php:7.4.9-alpine,source=/usr/local/bin,target=/opt/bi
364367
&& curl -fsSL -o /usr/local/bin/pickle \
365368
https://github.com/khs1994-php/pickle/releases/download/nightly/pickle-debug.phar \
366369
&& chmod +x /usr/local/bin/pickle \
367-
&& echo "--enable-redis-igbinary" > /tmp/redis.configure.options \
370+
&& echo "--enable-redis-igbinary --enable-redis-zstd" > /tmp/redis.configure.options \
368371
&& echo "--enable-memcached-igbinary" > /tmp/memcached.configure.options \
372+
&& echo "--with-libzstd" > /tmp/zstd.configure.options \
369373
&& pickle install $PECL_EXTENSION -n --defaults --strip --cleanup \
370374
&& pickle install \
371375
xdebug \

dockerfile/php/8.0/alpine/Dockerfile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ ENV PECL_EXTENSION \
5656
# xdebug-beta \
5757
# yaml \
5858
https://github.com/php/pecl-file_formats-yaml/archive/php7.tar.gz \
59+
https://github.com/kjdev/php-ext-zstd/archive/0.9.0.tar.gz \
5960
${PECL_EXTENSION_EXTRA:-}
6061

6162
ARG ALPINE_URL=dl-cdn.alpinelinux.org
@@ -104,6 +105,7 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
104105
c-client \
105106
icu-libs \
106107
gnu-libiconv \
108+
zstd-libs \
107109
${APK_EXTRA:-} \
108110
" \
109111
# tidyhtml-libs \
@@ -131,6 +133,7 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
131133
gettext-dev \
132134
libwebp-dev \
133135
icu-dev \
136+
zstd-dev \
134137
${APK_DEV_EXTRA:-} \
135138
" \
136139
# tidyhtml-dev \
@@ -158,8 +161,9 @@ RUN sed -i "s/dl-cdn.alpinelinux.org/${ALPINE_URL}/g" /etc/apk/repositories \
158161
&& pickle install $PHP_EXTENSION -n --defaults --strip \
159162
&& docker-php-source delete \
160163
# 安装 PECL 扩展
161-
&& echo "--enable-redis-igbinary" > /tmp/redis.configure.options \
164+
&& echo "--enable-redis-igbinary --enable-redis-zstd" > /tmp/redis.configure.options \
162165
&& echo "--enable-memcached-igbinary" > /tmp/memcached.configure.options \
166+
&& echo "--with-libzstd" > /tmp/zstd.configure.options \
163167
&& pickle install $PECL_EXTENSION -n --defaults \
164168
--strip --cleanup \
165169
# 默认不启用的扩展

dockerfile/php/8.0/cli/Dockerfile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -353,12 +353,14 @@ ENV PECL_BUILD_DEPS \
353353
libmemcached-dev \
354354
yaml-dev \
355355
pcre2-dev \
356-
zlib-dev
356+
zlib-dev \
357+
zstd-dev
357358

358359
ENV PECL_RUN_DEPS \
359360
libmemcached-libs \
360361
yaml \
361-
zlib
362+
zlib \
363+
zstd-libs
362364

363365
ENV PECL_EXTENSION \
364366
# mongodb \
@@ -371,6 +373,7 @@ ENV PECL_EXTENSION \
371373
# xdebug-beta \
372374
# yaml \
373375
https://github.com/php/pecl-file_formats-yaml/archive/php7.tar.gz \
376+
https://github.com/kjdev/php-ext-zstd/archive/0.9.0.tar.gz \
374377
${PECL_EXTENSION_EXTRA:-}
375378

376379
RUN --mount=type=bind,from=php:8.0.0beta1-alpine,source=/usr/local/bin,target=/opt/bin,rw \
@@ -382,8 +385,9 @@ RUN --mount=type=bind,from=php:8.0.0beta1-alpine,source=/usr/local/bin,target=/o
382385
&& curl -fsSL -o /usr/local/bin/pickle \
383386
https://github.com/khs1994-php/pickle/releases/download/nightly/pickle-debug.phar \
384387
&& chmod +x /usr/local/bin/pickle \
385-
&& echo "--enable-redis-igbinary" > /tmp/redis.configure.options \
388+
&& echo "--enable-redis-igbinary --enable-redis-zstd" > /tmp/redis.configure.options \
386389
&& echo "--enable-memcached-igbinary" > /tmp/memcached.configure.options \
390+
&& echo "--with-libzstd" > /tmp/zstd.configure.options \
387391
&& pickle install $PECL_EXTENSION -n --defaults --strip --cleanup \
388392
&& pickle install \
389393
# xdebug \

dockerfile/php/nightly/alpine/Dockerfile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -388,12 +388,14 @@ ENV PECL_BUILD_DEPS \
388388
libmemcached-dev \
389389
yaml-dev \
390390
pcre2-dev \
391-
zlib-dev
391+
zlib-dev \
392+
zstd-dev
392393

393394
ENV PECL_RUN_DEPS \
394395
libmemcached-libs \
395396
yaml \
396-
zlib
397+
zlib \
398+
zstd-libs
397399

398400
ENV PECL_EXTENSION \
399401
# mongodb \
@@ -406,6 +408,7 @@ ENV PECL_EXTENSION \
406408
# xdebug-beta \
407409
# yaml \
408410
https://github.com/php/pecl-file_formats-yaml/archive/php7.tar.gz \
411+
https://github.com/kjdev/php-ext-zstd/archive/0.9.0.tar.gz \
409412
${PECL_EXTENSION_EXTRA:-}
410413

411414
RUN --mount=type=bind,from=php:alpine,source=/usr/local/bin,target=/opt/bin,rw \
@@ -415,8 +418,9 @@ RUN --mount=type=bind,from=php:alpine,source=/usr/local/bin,target=/opt/bin,rw \
415418
&& export PATH=$PATH:/opt/bin \
416419
&& apk add --no-cache --virtual .pecl_build_deps $PECL_BUILD_DEPS $PHPIZE_DEPS \
417420
&& apk add --no-cache --virtual .pecl_run_deps $PECL_RUN_DEPS \
418-
&& echo "--enable-redis-igbinary" > /tmp/redis.configure.options \
421+
&& echo "--enable-redis-igbinary --enable-redis-zstd" > /tmp/redis.configure.options \
419422
&& echo "--enable-memcached-igbinary" > /tmp/memcached.configure.options \
423+
&& echo "--with-libzstd" > /tmp/zstd.configure.options \
420424
&& pickle install $PECL_EXTENSION -n --defaults --strip --cleanup --continue-on-error \
421425
&& pickle install \
422426
https://github.com/xdebug/xdebug/archive/master.tar.gz \

dockerfile/php/nightly/cli/Dockerfile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -373,12 +373,14 @@ ENV PECL_BUILD_DEPS \
373373
libmemcached-dev \
374374
yaml-dev \
375375
pcre2-dev \
376-
zlib-dev
376+
zlib-dev \
377+
zstd-dev
377378

378379
ENV PECL_RUN_DEPS \
379380
libmemcached-libs \
380381
yaml \
381-
zlib
382+
zlib \
383+
zstd-libs
382384

383385
ENV PECL_EXTENSION \
384386
# mongodb \
@@ -391,6 +393,7 @@ ENV PECL_EXTENSION \
391393
# xdebug-beta \
392394
# yaml \
393395
https://github.com/php/pecl-file_formats-yaml/archive/php7.tar.gz \
396+
https://github.com/kjdev/php-ext-zstd/archive/0.9.0.tar.gz \
394397
${PECL_EXTENSION_EXTRA:-}
395398

396399
RUN --mount=type=bind,from=php:alpine,source=/usr/local/bin,target=/opt/bin,rw \
@@ -400,8 +403,9 @@ RUN --mount=type=bind,from=php:alpine,source=/usr/local/bin,target=/opt/bin,rw \
400403
&& export PATH=$PATH:/opt/bin \
401404
&& apk add --no-cache --virtual .pecl_build_deps $PECL_BUILD_DEPS $PHPIZE_DEPS \
402405
&& apk add --no-cache --virtual .pecl_run_deps $PECL_RUN_DEPS \
403-
&& echo "--enable-redis-igbinary" > /tmp/redis.configure.options \
406+
&& echo "--enable-redis-igbinary --enable-redis-zstd" > /tmp/redis.configure.options \
404407
&& echo "--enable-memcached-igbinary" > /tmp/memcached.configure.options \
408+
&& echo "--with-libzstd" > /tmp/zstd.configure.options \
405409
&& pickle install $PECL_EXTENSION -n --defaults --strip --cleanup --continue-on-error \
406410
&& pickle install \
407411
https://github.com/xdebug/xdebug/archive/master.tar.gz \

0 commit comments

Comments
 (0)