Home for yannoff/php-fpm dockerhub repository sources.
A PHP-FPM docker image based on Alpine, with composer and offenbach installed.
- 8.1-fpm-alpine , 8.1
- 8.0-fpm-alpine , 8.0
- 7.4-fpm-alpine , 7.4
- 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) (2)
(1) Those PHP versions have now reached their EOL.
(2) yamltools version frozen to1.3.3
(see yamltools#0abfdf7).
- 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 packagepreview
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: 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=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 at build time (3) | pdo_mysql pdo_pgsql intl opcache bcmath |
APK_BASE |
Base alpine packages to be installed at build time | bash git vim |
APK_EXTRA |
Extra alpine packages to be installed at build time | - |
PHP_LIBS |
PHP libraries to be installed as composer global dependencies | - |
COMPOSER_VERSION |
Major composer version to be installed | 2 |
(3) See the mlocati/docker-php-extension-installer repository for the full list of supported extensions.
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 |
COMPOSER_VERSION |
2 |
Licensed under the MIT License.
This project uses the awesome mlocati/docker-php-extension-installer script for PHP extensions install.