我设法根据php7.1-apache
映像使用docker配置了PhpStrom。 docker-compose.yml
在下面:
version: '3'
services:
www:
image: php:7.1-apache
volumes:
- .:/var/www/html/
ports:
- "80:80"
在我的应用程序中,我有单元测试和api测试。从phpstorm运行单元测试没有问题。正确使用了远程解释器。
问题出在向Web服务器发出http请求的api测试中。我发现apache2守护程序根本没有启动。
docker ps --no-trunc
显示:
php /var/www/html/vendor/phpunit/phpunit/phpunit --no-configuration --filter '/(::should_do_something)( .*)?$/' ExampleTest /var/www/html/tests/ExampleTest.php --teamcity
在容器中,我可以看到:
$:~/workspace/phpstorm-docker$ docker-compose exec www bash
root@aa13971914b2:/var/www/html/tests# service apache2 status
[FAIL] apache2 is not running ... failed!
这是因为PhpStrom无法启动apache2-foreground
进程。
如果我将sleep(15)
放在api测试执行之前和容器运行内部:
service apache2 start
测试通过。
您知道如何使PhpStorm也可以启动apache2 Web服务器以具有完整的容器吗?
谢谢。
答案 0 :(得分:0)
PhpStorm通过Docker Compose启动容器时会忽略入口点:https://youtrack.jetbrains.com/issue/WI-42228
可能在您的command: service apache2 start
中添加docker-compose.yml
可以解决问题。