@@ -3,20 +3,21 @@ ARG PHP_BUILD_DATE="20250925"
33
44FROM $BASE_IMAGE AS compile
55
6- ENV PHP_REDIS_VERSION= "6.3.0" \
7- PHP_SWOOLE_VERSION= "6.2.0 " \
6+ ENV \
7+ PHP_BROTLI_VERSION= "0.18.3 " \
88 PHP_IMAGICK_VERSION="3.8.1" \
9- PHP_MONGODB_VERSION="2.2.1" \
10- PHP_YAML_VERSION="2.3.0" \
9+ PHP_LZ4_VERSION="0.6.0" \
1110 PHP_MAXMINDDB_VERSION="v1.13.1" \
11+ PHP_MONGODB_VERSION="2.2.1" \
12+ PHP_OPENTELEMETRY_VERSION="1.2.1" \
13+ PHP_PROTOBUF_VERSION="5.34.0" \
14+ PHP_REDIS_VERSION="6.3.0" \
1215 PHP_SCRYPT_VERSION="2.0.1" \
13- PHP_ZSTD_VERSION="0.15.2" \
14- PHP_BROTLI_VERSION="0.18.3" \
1516 PHP_SNAPPY_VERSION="0.2.3" \
16- PHP_LZ4_VERSION= "0.6 .0" \
17+ PHP_SWOOLE_VERSION= "6.2 .0" \
1718 PHP_XDEBUG_VERSION="3.5.1" \
18- PHP_OPENTELEMETRY_VERSION= "1.2.1 " \
19- PHP_PROTOBUF_VERSION= "5.34.0 "
19+ PHP_YAML_VERSION= "2.3.0 " \
20+ PHP_ZSTD_VERSION= "0.15.2 "
2021
2122RUN \
2223 apk update && \
@@ -57,11 +58,11 @@ RUN \
5758 zlib-dev \
5859 zstd-dev
5960
60- # compile from source instals
61+ # compile from source instals (least desirable method)
6162
63+ # Redis Extension
6264FROM compile AS redis
6365RUN \
64- # Redis Extension
6566 git clone --depth 1 --branch $PHP_REDIS_VERSION https://github.com/phpredis/phpredis.git && \
6667 cd phpredis && \
6768 phpize && \
7071
7172# # Swoole Extension
7273FROM compile AS swoole
74+ RUN docker-php-ext-install sockets
7375RUN \
74- git clone --depth 1 --branch $PHP_SWOOLE_VERSION https://github.com/swoole/swoole-src.git && \
76+ git clone --depth 1 --branch "v $PHP_SWOOLE_VERSION" https://github.com/swoole/swoole-src.git && \
7577 cd swoole-src && \
7678 phpize && \
7779 ./configure --enable-sockets --enable-http2 --enable-openssl --enable-swoole-curl && \
@@ -170,34 +172,17 @@ RUN \
170172 ./configure && \
171173 make && make install
172174
173- # PHP PECL installs
175+ # PHP PECL installs (acceptable method)
174176
175177FROM compile AS opentelemetry
176178RUN pecl install opentelemetry-${PHP_OPENTELEMETRY_VERSION}
177179
178180FROM compile AS protobuf
179181RUN pecl install protobuf-${PHP_PROTOBUF_VERSION}
180182
181- # docker-php-extensions installs
182-
183- FROM compile AS gd
184- RUN docker-php-ext-install gd
185-
186- FROM compile AS sockets
187- RUN docker-php-ext-install sockets
188-
189- FROM compile AS pdo_mysql
190- RUN docker-php-ext-install pdo pdo_mysql
191-
192- FROM compile AS pdo_pgsql
193- RUN docker-php-ext-install pdo pdo_pgsql
194-
195- FROM compile AS intl
196- RUN docker-php-ext-install intl
197-
198183FROM $BASE_IMAGE AS final
199184
200- # PAss in ARGS to use as label values and path components
185+ # Pass in ARGS to use as label values and path components
201186
202187ARG BASE_IMAGE
203188ARG PHP_BUILD_DATE
@@ -249,23 +234,27 @@ RUN \
249234 && apk del .deps \
250235 && rm -rf /var/cache/apk/*
251236
237+ # extension installer (prefered method)
238+
239+ RUN docker-php-ext-install \
240+ gd \
241+ intl \
242+ pdo_mysql \
243+ pdo_pgsql \
244+ sockets
245+
252246WORKDIR /usr/src/code
253247
254248COPY --from=brotli /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/brotli.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
255- COPY --from=gd /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/gd.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
256249COPY --from=imagick /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/imagick.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
257- COPY --from=intl /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/intl.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
258250COPY --from=lz4 /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/lz4.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
259251COPY --from=maxmind /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/maxminddb.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
260252COPY --from=mongodb /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/mongodb.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
261253COPY --from=opentelemetry /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/opentelemetry.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
262- COPY --from=pdo_mysql /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/pdo_mysql.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
263- COPY --from=pdo_pgsql /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/pdo_pgsql.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
264254COPY --from=protobuf /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/protobuf.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
265255COPY --from=redis /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
266256COPY --from=scrypt /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/scrypt.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
267257COPY --from=snappy /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/snappy.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
268- COPY --from=sockets /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/sockets.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
269258COPY --from=swoole /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/swoole.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
270259COPY --from=xdebug /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/xdebug.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
271260COPY --from=yaml /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/yaml.so /usr/local/lib/php/extensions/no-debug-non-zts-$PHP_BUILD_DATE/
0 commit comments