来自PhpStorm的docker上的Runnig测试无法启动apache2

时间:2018-12-14 17:13:52

标签: php docker testing docker-compose phpstorm

我设法根据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服务器以具有完整的容器吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

PhpStorm通过Docker Compose启动容器时会忽略入口点:https://youtrack.jetbrains.com/issue/WI-42228

可能在您的command: service apache2 start中添加docker-compose.yml可以解决问题。