PHP 8.5.12 CLI for local development: lampelk/php-cli + Xdebug, Composer & Symfony CLI.
1.8K
A local development version of lampelk/php-cli (PHP 8.5.12).
It has the same extensions and setup as production, plus Xdebug, Composer and the Symfony CLI. Use it for Composer,
console commands, tests and static analysis without installing PHP on your machine.
# Install dependencies
docker run --rm -it -v "${PWD}:/var/www/html" lampelk/php-cli-dev:latest composer install
# Run the Symfony console
docker run --rm -it -v "${PWD}:/var/www/html" lampelk/php-cli-dev:latest php bin/console cache:clear
# Run the tests with code coverage
docker run --rm -it -v "${PWD}:/var/www/html" -e XDEBUG_MODE=coverage \
lampelk/php-cli-dev:latest php vendor/bin/phpunit --coverage-text
docker run --rm -v "${PWD}:/local" -w /local lampelk/php-cli-dev:latest symfony new --webapp my_project
On top of everything in the production image, this image adds:
| Tool | Details |
|---|---|
| Xdebug 3.5.0 | debug mode, connects to host.docker.internal:9000 with IDE key PHPSTORM |
| Composer | Latest version at build time |
| Symfony CLI | symfony |
git |
memory_limit is -1 (unlimited), so Composer, PHPStan and similar tools don't run out of memory.
| To… | Do this |
|---|---|
| Debug from PhpStorm | Listen for debug connections on port 9000 |
| Turn Xdebug off (faster) | XDEBUG_MODE=off |
| Collect code coverage | XDEBUG_MODE=coverage |
| Change the host or port | XDEBUG_CONFIG="client_host=… client_port=…" |
On Linux, add host.docker.internal:host-gateway to extra_hosts (or --add-host) so Xdebug can reach your IDE.
⚠️ Development only. Xdebug and unlimited memory are unsafe on a public server. Use the production image for anything you deploy.
| Extension | Notes |
|---|---|
amqp | RabbitMQ / Amazon MQ. The Amazon Root CA is at /var/certs/amazon-root-ca.pem |
apcu | |
gd | With FreeType, JPEG and WebP support |
intl | |
memcached | |
mysqli, pdo_mysql | |
opcache | Enabled |
pcntl | |
redis | |
xsl | |
zip |
The upstream defaults (curl, mbstring, openssl, sodium, pdo_sqlite, xml, …) are also included. Run
php -m inside the container for the full list.
Build tools and -dev headers are kept in the image, so you can add more extensions in your own Dockerfile with
docker-php-ext-install or pecl install.
| Tag | Description |
|---|---|
latest | Current stable build (PHP 8.5.12). Rebuilt on every change and for each PHP security release. |
Any other tag is a pre-release build of work in progress. Don't use one in production.
latest moves. For reproducible deploys, pin the image by digest, for example image@sha256:…. Then bump the digest
when a new build is published.
These images are rebuilt from the official PHP and nginx images. Each build picks up the latest upstream and Debian security fixes, and the PHP version is bumped for every PHP security release. To get a fix, pull and redeploy. Running containers are not updated automatically.
| Image | Purpose |
|---|---|
lampelk/php-fpm | PHP-FPM for web apps in production |
lampelk/php-cli | PHP CLI for workers, consumers and cron in production |
lampelk/php-fpm-dev | php-fpm + Xdebug, Composer and Symfony CLI for local development |
lampelk/php-cli-dev | php-cli + Xdebug, Composer and Symfony CLI for local development |
lampelk/nginx | Hardened nginx to sit in front of php-fpm |
Released under the MIT License.
Content type
Image
Digest
sha256:d1bc54c83…
Size
279 MB
Last updated
4 days ago
docker pull lampelk/php-cli-dev