Skip to main content

Easily install PHP extension in your own Docker images

This blog post might be outdated!
This blog post was published more than one year ago and might be outdated!
· 2 min read
Stephan Hochdörfer
Head of IT Business Operations

Recently, I wanted to improve our CI build pipelines with some custom-built Docker images for our PHP projects. To make sure I can reuse the image in as many of our projects as possible, I wanted to compile and install as many PHP extensions as possible.

Installing PHP extensions from scratch can be a bit tedious as you need to figure out which libraries are required for compiling the PHP extensions. Luckily, there exists a tool to help automate this for you if you are using Alpine or Debian/Ubuntu as base image.

In your Dockerfile, install the script via the following approach:

COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/

Now, you can invoke the install-php-extensions script to install all sorts of 3rd party PHP extensions needed for your specific setup. For example, to install xdebug, run the following command in your Dockerfile:

RUN install-php-extensions xdebug

If you need to install a specific module version, you can specify the exact version number as well:

RUN install-php-extensions xdebug-2.9.7

Or, in case you want to install the latest patch release of the 2.9 release, install xdebug like this:

RUN install-php-extensions xdebug-^2.9

Additionally, it even allows you to install Composer which also saves a few lines of code, especially if you need a specific version of Composer running in your container:

install-php-extensions @composer-2.4.0