Home for yannoff/php-fpm dockerhub repository sources.
A PHP-FPM docker image based on Alpine, with composer and offenbach installed.
- 8.2-fpm-alpine , 8.2
- 8.1-fpm-alpine , 8.1
- 8.0-fpm-alpine , 8.0
- 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
gd
andimap
extensionspatch
extra package installEurope/Rome
as timezonelaravel/installer
as a composer global packagelatest-preview
version 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-preview
Alternatively, 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.0
The 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.18 |
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, thelatest
release 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-reqs
switch is recommended
Pre-compiled images are built with the following default values:
Build arg | Value |
---|---|
TZ |
Europe/Paris |
PHP_EXTS |
intl opcache |
APK_BASE |
bash git vim |
APK_EXTRA |
openssh |
COMPOSER_VERSION |
2.2.18 |
The helper php
script has become 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.