Skip to content

Instantly share code, notes, and snippets.

@1ma
Last active November 17, 2025 00:34
Show Gist options
  • Select an option

  • Save 1ma/8067c028c64bbda2a8e6cde691620f63 to your computer and use it in GitHub Desktop.

Select an option

Save 1ma/8067c028c64bbda2a8e6cde691620f63 to your computer and use it in GitHub Desktop.
Sample customization of Docker official PHP image with multistage build
FROM php:8.4-fpm AS build
RUN apt-get update && apt-get install -y --no-install-recommends \
libfreetype-dev \
libjpeg62-turbo-dev \
libmemcached-dev \
libpng-dev \
libpq-dev \
libsqlite3-dev \
zlib1g-dev \
&& rm -rf /var/lib/apt/lists/*
RUN docker-php-source extract
WORKDIR /usr/src/php/ext
RUN pecl bundle igbinary \
&& pecl bundle memcached \
&& pecl bundle msgpack \
&& pecl bundle redis \
&& pecl bundle xdebug
ENV PHP_CFLAGS="$PHP_CFLAGS -Os"
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install -j$(nproc) \
bcmath \
gd \
igbinary \
msgpack \
pdo_mysql \
pdo_pgsql \
pdo_sqlite \
pgsql \
redis \
xdebug
RUN docker-php-ext-configure memcached --enable-memcached-igbinary=yes --enable-memcached-msgpack=yes
RUN docker-php-ext-install -j$(nproc) \
memcached
FROM scratch AS exts
COPY --from=build /usr/local/lib/php/extensions/no-debug-non-zts-20240924/bcmath.so /libs/bcmath.so
COPY --from=build /usr/local/lib/php/extensions/no-debug-non-zts-20240924/gd.so /libs/gd.so
COPY --from=build /usr/local/lib/php/extensions/no-debug-non-zts-20240924/igbinary.so /libs/igbinary.so
COPY --from=build /usr/local/lib/php/extensions/no-debug-non-zts-20240924/memcached.so /libs/memcached.so
COPY --from=build /usr/local/lib/php/extensions/no-debug-non-zts-20240924/msgpack.so /libs/msgpack.so
COPY --from=build /usr/local/lib/php/extensions/no-debug-non-zts-20240924/pdo_mysql.so /libs/pdo_mysql.so
COPY --from=build /usr/local/lib/php/extensions/no-debug-non-zts-20240924/pdo_pgsql.so /libs/pdo_pgsql.so
COPY --from=build /usr/local/lib/php/extensions/no-debug-non-zts-20240924/pgsql.so /libs/pgsql.so
COPY --from=build /usr/local/lib/php/extensions/no-debug-non-zts-20240924/redis.so /libs/redis.so
COPY --from=build /usr/local/lib/php/extensions/no-debug-non-zts-20240924/xdebug.so /libs/xdebug.so
FROM php:8.4-fpm AS final
COPY --from=exts /libs/* /usr/local/lib/php/extensions/no-debug-non-zts-20240924/
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
libfreetype6 \
libjpeg62-turbo \
libmemcached11t64 \
libpng16-16t64 \
libpq5 \
&& rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-enable \
bcmath \
gd \
igbinary \
memcached \
msgpack \
pdo_mysql \
pdo_pgsql \
pgsql \
redis \
xdebug
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment