Welcome to PHP essentials Docker container.
Main purpuse of this container is to provide easy to use PHP CLI and other essential tools for debuging and testing your PHP applications.
- PHP 5.5.* (ondrej's repos)
- Composer
- Pear
- PHPUnit 3.7
- PHP Copy/Paste Detector - phpcpd
- PHP Dead Code Detector - phpdcd
- Measuring the size and analyzing the structure of a PHP project - phploc
- PHP software metrics - pdepend
- PHP Code sniffer- phpcs
- PHP Mess Detector - phpmd
- Behaviour driven development for PHP - behat
docker pull darh/php-essentials
Container is give you PHP's interactive mode by default:
docker run --rm -i -t darh/php-essentials
Docker's run command reference manual
docker run --rm -i -t darh/php-essentials php -m
docker run --rm -i -t darh/php-essentials php -i
Run PHP's internal server
(a totally useless example)
docker run --publish 80:80 --rm -t -i darh/php-essentials \
php -S 0.0.0.0:80
docker run --rm -i -t darh/php-essentials composer
docker run --rm -i -t darh/php-essentials pear
docker run --rm -i -t darh/php-essentials phpunit
docker run --rm -i -t darh/php-essentials phpcpd
docker run --rm -i -t darh/php-essentials phpdcd
docker run --rm -i -t darh/php-essentials phploc
docker run --rm -i -t darh/php-essentials pdepend
docker run --rm -i -t darh/php-essentials phpcs
docker run --rm -i -t darh/php-essentials phpmd
docker run --rm -i -t darh/php-essentials behat
Please note, that running things like composer autoupdate
is futile as
container & it's content will be removed when command finishes.
If there's a newer version add an issue on Github or rebuild the
php-essentials image yourself.
All above example are useless as presented as the code runs in the container and none of the examples actualy maps local files to the container:
A bit more usefull example -- adding volume param that maps the current folder and hinting PHP server where it's document root is
docker run --volume `pwd`:/opt/web/page:r --publish 80:80 --rm -t -i darh/php-essentials \
php -S 0.0.0.0:80 -t /opt/web/page
Do you want to run this long chain every time?
Include essentials.sh file (or it's contents) to bashrc or similar file. This will enable you to run all these commands as if they were installed on your local machine
In case you want to build it yourself
docker build --rm -t darh/php-essentials .
docker run --rm -i -t darh/php-essentials bash