Skip to content

Latest commit

 

History

History

dev

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Docker PHP Images logo

Docker PHP images

GitHub Workflow Status Source link Authors link Docker Pulls License


Docker images built on top of the official PHP images with the addition of some common and useful extensions, installed with mlocati/docker-php-extension-installer, and are meant for debugging purposes. You can find these images on the Docker Hub (and if you're reading this file, you're probably already there).

An automated build is set up, so they should be always up-to-date with the Dockerfiles in the GitHub repository. Also, every time an official PHP image is updated, a rebuild is triggered, so that you will always find the latest security patches installed in these images.

For more production-like environments, you might want to choose an image without XDebug installed, instead.

Available tags

  • latest
  • 5.6
  • 5.6-apache
  • 5.6-fpm
  • 7.0
  • 7.0-apache
  • 7.0-fpm
  • 7.1
  • 7.1-apache
  • 7.1-fpm
  • 7.2
  • 7.2-apache
  • 7.2-fpm
  • 7.3
  • 7.3-apache
  • 7.3-fpm
  • 7.4
  • 7.4-apache
  • 7.4-fpm
  • 8.0
  • 8.0-apache
  • 8.0-fpm
  • 8.1
  • 8.1-apache
  • 8.1-fpm
  • 8.2
  • 8.2-apache
  • 8.2-fpm
  • 8.3
  • 8.3-apache
  • 8.3-fpm

As you might have guessed, all tags are built on top of the corresponding tag of the official image. Not all tags are supported in order to easen maintenance.

Installed extensions

The following modules and extensions have been enabled, in addition to those you can already find in the official PHP image:

  • amqp
  • bcmath
  • bz2
  • calendar
  • event
  • exif
  • gd
  • gettext
  • iconv
  • imagick
  • intl
  • ldap
  • mbstring
  • mcrypt (only PHP ≤ 7.1)
  • memcached
  • mysql (only PHP 5.x)
  • mysqli
  • pdo_mysql
  • pdo_pgsql
  • pgsql
  • redis
  • soap
  • sockets
  • xdebug
  • xsl
  • Zend OPcache
  • zip

You will probably not need all this stuff. Even if having some extra extensions loaded ain't a big issue in most cases (especially in a development environment), you will very likely want to checkout this repository, remove unwanted extensions from the Dockerfile, and build your own image — for sometimes removing is easier than adding. 😉

Composer

Composer is installed globally in all images. Please, refer to their documentation for usage hints. Since 2020/11/01 both version 1 and 2 are installed, available through composer1 and composer2 commands respectively (composer in now a symlink to composer2).
Prestissimo (composer plugin) is installed globally in all images, for use with Composer version 1. It's a plugin that downloads packages in parallel to speed up the installation process of Composer packages.

Configuring XDebug

XDebug is installed, but not yet configured. For features like remote debugging, you will need to pass additional configurations via Apache or Nginx configuration files.

Using Apache

In the directories you want to enable debug in, you will want to specify additional options via php_value, e.g.:

php_value xdebug.remote_enable 1
php_value xdebug.remote_host 192.168.99.1

Using Nginx

To enable debugging, additional parameters must be passed to the FastCGI PHP interpreter via fastcgi_param, e.g.:

fastcgi_param PHP_VALUE "xdebug.remote_enable=1\nxdebug.remote_host=192.168.99.1";

Contributing

If you find an issue, or have a special wish not yet fulfilled, please open an issue on GitHub providing as many details as you can (the more you are specific about your problem, the easier it is for us to fix it).

Pull requests are welcome, too! 😁 Please, run make build and make test before attempting a pull request. Also, it would be nice if you could stick to the best practices for writing Dockerfiles.


License

Docker PHP Images is released under the MIT license.