I want to configure my PhpStorm IDE to run PHPUnit tests within my Docker container.
It seems like I'm restricted to either using a local PHP executable, or one through SSH, as the interpreter for the tests.
I could install an SSH service on my PHP container, but it seems like a bit of a hacky solution, and articles online discourage installing an SSH service on containers.
To try and get a local interpreter working, I tried creating a bash script that would proxy calls to PHP within the container, like this:
#!/usr/bin/env bash
# Run PHP through Docker
docker exec -t mycontainer_php_1 php "$@"
This works perfectly when I run it myself, but when I point PhpStorm to it as a local PHP interpreter, it doesn't recognize it as a valid PHP executable.
So what's a good way to get this working?
With PhpStorm now having better integration with Docker engine (including Docker for Mac), you can now just do the following (or read this article):
Command line:
phpunit
Docker image: docker pull phpunit/phpunit
API_URL
: socat -d TCP-LISTEN:2376,range=127.0.0.1/32,reuseaddr,fork UNIX:/var/run/docker.sock
Then Phpstorm:
API URL
set to:
unix:///var/run/docker.sock
http://127.0.0.1:2376
or tcp://localhost:2376
...
then +
and 'Remote...'phpunit/phpunit:latest
php
+
then 'By Remote interpreter...' and select Use Composer Autoloader
/opt/project/vendor/autoload.php
/opt/project/phpunit.xml.dist