Docker images for PHP-FPM.
- PHP 7.4
- PHP 8.0
- PHP 8.1
- PHP 8.2
- PHP 8.3
- PHP 8.4
- PHP 8.5
# PHP 7.4
docker image pull meghsh/php:7.4
# PHP 8.1
docker image pull meghsh/php:8.1
# PHP 8.2
docker image pull meghsh/php:8.2
# PHP 8.3
docker image pull meghsh/php:8.3
# PHP 8.4
docker image pull meghsh/php:8.4
# PHP 8.5
docker image pull meghsh/php:8.5One-off commands
# PHP 7.4
docker run --rm meghsh/php:7.4 bash -c "php -v"
# PHP 8.0
docker run --rm meghsh/php:8.0 bash -c "php -v"
# PHP 8.2
docker run --rm meghsh/php:8.2 bash -c "php -v"
# PHP 8.3
docker run --rm meghsh/php:8.3 bash -c "php -v"
# PHP 8.4
docker run --rm meghsh/php:8.4 bash -c "php -v"
# PHP 8.5
docker run --rm meghsh/php:8.5 bash -c "php -v"With docker-compose:
services:
php:
image: "meghsh/php:7.4"
volumes:
- "./app:/var/www/html"
Install Container Structure Test and run the tests:
container-structure-test test --image meghsh/php:8.2 --config php-structure-test.yamlDocker images for Node.js (Alpine variant), including yarn, pnpm, and vite.
- Node 18
- Node 20
- Node 22
- Node 24
- Node 25
# Node 25 (Latest)
docker image pull meghsh/node:25
# Node 22 (LTS)
docker image pull meghsh/node:22One-off commands:
docker run --rm meghsh/node:25 node -v
docker run --rm meghsh/node:25 yarn -v
docker run --rm meghsh/node:25 pnpm -vWith docker-compose:
services:
node:
image: "meghsh/node:25"
volumes:
- "./app:/var/www/html"
command: npm run devTo verify the Node.js image structure and installed tools:
# Build the image locally (optional, if testing changes)
./node/build.sh
# Run structure tests
container-structure-test test --image meghsh/node:25 --config node-structure-test.yamlBuild-time image used during deployments to compile applications (Laravel,
Bedrock, Node apps). It is FROM meghsh/php:<version> — so it carries the exact
PHP version, full extension set, Composer, and WP-CLI of the runtime image — with
Node.js, npm, yarn, and pnpm layered on top. This lets a single ephemeral
container run composer install and npm/yarn/pnpm install + asset builds,
while the long-running runtime containers stay lean.
Mirrors the PHP images: 7.4, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5.
docker image pull meghsh/builder:8.3Run as an ephemeral, throwaway build container. Pass --user so build artifacts
are written to the bind-mounted release directory with the correct ownership, and
point caches at a writable path:
docker run --rm \
--user "$(id -u):$(id -g)" \
--env HOME=/tmp --env COMPOSER_HOME=/tmp/composer \
--volume "$PWD":/app --workdir /app \
meghsh/builder:8.3 bash -c '
composer install --no-dev --optimize-autoloader --no-interaction
npm ci && npm run build'Select the tag matching the site's PHP version (meghsh/builder:8.3); the right
PHP binary is already the default in that image — no per-binary selection needed.
./builder/build.sh # requires the matching meghsh/php:<version> tags to existcontainer-structure-test test --image meghsh/builder:8.3 --config builder-structure-test.yaml