How to use this image
Dockerfile in your PHP project
FROM php:7.2-cli COPY . /usr/src/myapp WORKDIR /usr/src/myapp CMD [ "php", "./your-script.php" ]
Then, run the commands to build and run the Docker image:
$ docker build -t my-php-app . $ docker run -it --rm --name my-running-app my-php-app
How to install more PHP extensions
Many extensions are already compiled into the image, so it’s worth checking the output of
php -m or
php -i before going through the effort of compiling more.
We provide the helper scripts
docker-php-ext-enable to more easily install PHP extensions.
In order to keep the images smaller, PHP’s source is kept in a compressed tar file. To facilitate linking of PHP’s source with any extension, we also provide the helper script
docker-php-source to easily extract the tar or delete the extracted source. Note: if you do use
docker-php-source to extract the source, be sure to delete it in the same layer of the docker image.
FROM php:7.2-cli RUN docker-php-source extract \ # do important things \ && docker-php-source delete
PHP Core Extensions
For example, if you want to have a PHP-FPM image with
gd extensions, you can inherit the base image that you like, and write your own
Dockerfile like this:
FROM php:7.2-fpm RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-install -j$(nproc) iconv \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd
Remember, you must install dependencies for your extensions manually. If an extension needs custom
configure arguments, you can use the
docker-php-ext-configure script like this example. There is no need to run
docker-php-source manually in this case, since that is handled by the
See “Dockerizing Compiled Software” for a description of the technique Tianon uses for determining the necessary build-time dependencies for any bit of software (which applies directly to compiling PHP extensions).