Home for yannoff/php-fpm dockerhub repository sources.
A PHP-FPM docker image based on Alpine, with composer and offenbach installed.
- 8.5-rc-fpm-alpine , 8.5-rc
- 8.4-fpm-alpine , 8.4
- 8.3-fpm-alpine , 8.3
- 8.2-fpm-alpine , 8.2
- 8.1-fpm-alpine , 8.1
- 8.0-fpm-alpine , 8.0 (1)
- 7.4-fpm-alpine , 7.4 (1)
- 7.3-fpm-alpine , 7.3 (1)
- 7.2-fpm-alpine , 7.2 (1)
- 7.1-fpm-alpine , 7.1 (1)
- 7.0-fpm-alpine , 7.0 (1)
- 5.6-fpm-alpine , 5.6 (1)
- 5.5-fpm-alpine , 5.5 (1)
(1) Those PHP versions have now reached their EOL.
- Dynamically build images for a fine-tuned docker stack
- Use pre-compiled images to run on-the-fly, one-shot commands
Dynamic builds allow for flexible, fine-tuned and featherweight images.
The recommended way is to use the repository URL as build context.
Example: Integration in a docker-compose stack
- PHP version 8.0
- gdand- imapextensions
- patchextra package install
- Europe/Romeas timezone
- laravel/installeras a composer global package
- latest-previewversion of composer
# docker-compose.yaml
fpm:
    build:
        context: https://github.com/yannoff/docker-php-fpm.git#:8.0
        args:
            TZ: Europe/Rome
            PHP_EXTS: gd imap
            APK_EXTRA: patch
            PHP_LIBS: laravel/installer
            COMPOSER_VERSION: latest-previewAlternatively, building from the command-line:
docker                                     \
    build                                  \
    -t php8.0                              \
    --build-arg TZ="Europe/Rome"           \
    --build-arg PHP_EXTS="gd imap"         \
    --build-arg APK_EXTRA=patch            \
    --build-arg PHP_LIBS=laravel/installer \
    --build-arg COMPOSER_VERSION=latest-preview   \
    git@github.com:yannoff/docker-php-fpm.git#:8.0The following build arguments are available:
| Build arg | Description | Defaults | 
|---|---|---|
| TZ | The timezone to use for the container | UTC | 
| PHP_EXTS | PHP extensions to be installed (2) | pdo_mysql pdo_pgsql intl opcache bcmath | 
| APK_BASE | Base alpine packages to be installed | bash git vim | 
| APK_EXTRA | Extra alpine packages to be installed | - | 
| PHP_LIBS | PHP libraries to be installed as composer global dependencies | - | 
| COMPOSER_VERSION | Specific composer version to be installed (3) | 2.2.25 | 
| OFFENBACH_VERSION | Alternative offenbach version to be installed (4) | latest | 
| OFFENBACH_FILENAME | Alternative name for the offenbach executable | offenbach | 
| OFFENBACH_INSTALL_DIR | Install dir for the offenbach executable | /usr/bin | 
(2) See the mlocati/docker-php-extension-installer repository for the full list of supported extensions.
(3) May belatest-preview,latest-stable, or an exact version - eg:2.4.0.
(4) The version must be an exact version, eg:1.6.2. If left empty, thelatestrelease will be used.
On the other hand, the base pre-compiled images from dockerhub may be convenient to run php or composer commands on the fly, providing a minimal PHP ecosystem.
Example: Creating a new laravel empty project
docker                  \
    run                 \
    --rm                \
    -it                 \
    -u $UID:$GID        \
    -w /src             \
    -v $PWD:/src        \
    yannoff/php-fpm:8.0 \
    composer create-project --ignore-platform-reqs laravel/laravel acme
Since the base image may not contain all of the required PHP extensions, the
--ignore-platform-reqsswitch is recommended
Pre-compiled images are built with the following default values:
| Build arg | Value | 
|---|---|
| TZ | Europe/Paris | 
| PHP_EXTS | intl | 
| APK_BASE | bash git vim | 
| APK_EXTRA | openssh | 
| COMPOSER_VERSION | 2.2.25 | 
The php multi-call script is now a fully-featured project: PAW (Php.Any.Where).
Licensed under the MIT License.
This project uses the awesome mlocati/docker-php-extension-installer script for PHP extensions install.