【发布时间】:2018-12-14 17:13:51
【问题描述】:
我设法使用基于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 运行单元测试没有问题。远程解释器使用正确。
问题在于向网络服务器发出 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 网络服务器来拥有完整的容器吗?
谢谢。
【问题讨论】:
标签: php docker testing docker-compose phpstorm