docker pull cgr.dev/chainguard/php
Need access to a specific version? Contact us.
Get notified of upcoming product changes, critical vulnerability notifications and patches and more.
Sign inMinimalist Wolfi-based PHP images for building and running PHP applications. Includes both dev
and fpm
variants.
The image is available on cgr.dev
:
Our latest
tags use the most recent build of the Wolfi PHP package. All variants have -dev
versions that include Composer and other utilities that are suitable for developing and building PHP applications. Check the Tags page for more details on available tags, and the Details page for information about included packages per variant.
latest
: This is a distroless image for running command-line PHP applications.latest-fpm
: This is the distroless php-fpm
image variant, designed to be used together with our Nginx image.This will automatically pull the image to your local system and execute the command php --version
:
You should get output similar to this:
To install application dependencies from your host machine, you can use the latest-dev
variant with a shared volume:
When creating a Dockerfile to extend from these images, the recommended approach is to set up a multi-stage build so that you're able to install your Composer dependencies on a separate environment and then copy the files over to a smaller production image.
The following example demonstrates how to set up a multi-stage Dockerfile build in the context of command line PHP applications:
For web applications, you should follow the same principle, but using the php-fpm
variant for the final image. You'll also need a custom nginx.conf
file to set up your Nginx service with PHP-FPM.
A good way to test your setup locally is by using Docker Compose. The following docker-compose.yaml
file demonstrates how to create a web server environment using the Nginx Chainguard Image :
You'll notice the Nginx service has a volume share to set up a custom config file. The following nginx.conf
file sets up Nginx to serve pages from a /app/public
folder and redirects requests to .php
files to the app
service on port 9000
.
For more detailed information on how to use these images, check the Getting Started with the PHP Chainguard Images guide.
To obtain information about available modules, you can run:
To obtain detailed information about the environment, you can run a php --info
command on any of the image tags and use grep
to look for a specific module or extension.
For instance, to check for curl
settings, you can run:
Chainguard Images contain software packages that are direct or transitive dependencies. The following licenses were found in the "latest" version of this image:
Apache-2.0
BSD-2-Clause
GPL-2.0-or-later
GPL-3.0-or-later
ISC
LGPL-2.1-or-later
LGPL-3.0-or-later
For a complete list of licenses, please refer to this Image's SBOM.
Software license agreementProducts
Chainguard Images© 2024 Chainguard, Inc.