【问题标题】:Runnig tests on docker from PhpStorm does not start apache2从 PhpStorm 在 docker 上运行测试不会启动 apache2
【发布时间】: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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-09-02
      • 2022-06-15
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 2022-06-20
      • 2020-04-22
      相关资源
      最近更新 更多