A PHP-FPM image based on Alpine, enriched with composer & offenbach
7.0K
A PHP-FPM docker image based on Alpine, with composer and offenbach installed.
(1) Those PHP versions have now reached their EOL.
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
8.0gd and imap 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 \
[email protected]: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.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 |
Licensed under the MIT License.
This project uses the awesome mlocati/docker-php-extension-installer script for PHP extensions install.
Content type
Image
Digest
sha256:6b13c24eb…
Size
71.6 MB
Last updated
28 days ago
docker pull yannoff/php-fpm