PHP-FPM alpine v.8.2/8.3
1.5K
Multi-stage Docker image based on php:8.3-fpm-alpine3.21, built for a Laravel/PHP stack with a wide set of extensions, Node.js runtime, Chromium (Puppeteer), and Composer baked in.
The image is built in two stages:
| Stage | Base | Purpose |
|---|---|---|
builder | php:8.3-fpm-alpine3.21 | Installs all -dev / build tooling (gcc, cmake, autoconf, etc.) and compiles every PHP extension. Discarded after build — none of it ends up in the final image. |
runtime | php:8.3-fpm-alpine3.21 | Only runtime libraries + the compiled extensions (.so files and .ini configs) copied over from builder. This is the image you actually ship. |
Both stages use the same base image tag, so the PHP extension ABI directory matches between them and the copied .so files load without recompilation.
Bundled (docker-php-ext-install):
PECL:
Built from source:
Other: ffi.enable = 1 is set if the ffi extension is present in the base image.
Verify the actual list after a build:
docker run --rm myapp-php:8.3 php -m
node:22.23.0-alpine image)PUPPETEER_EXECUTABLE_PATHc0ns0l3/curl-impersonate)www-data remapped to UID 1000Compilers and -dev packages:
⚠️ tesseract-ocr currently lives only in the builder stage and is not copied into runtime — it is not present in the final image, even though the package name appears in the Dockerfile. If you need it available inside the running container (not just at build time), add tesseract-ocr to the runtime-stage apk list.
DOCKER_BUILDKIT=1 docker build -t myapp-php:8.3 .
Content type
Image
Digest
sha256:cdbd7aba3…
Size
437.5 MB
Last updated
10 days ago
docker pull c0ns0l3/php-alpine:8.3