【问题标题】:Disable Xdebug in docker container before running PHPUnit via PhpStorm在通过 PhpStorm 运行 PHPUnit 之前在 docker 容器中禁用 Xdebug
【发布时间】:2019-08-12 02:46:00
【问题描述】:

我按照本教程配置了PhpStorm:PHPUnit for PhpStorm

我可以成功运行我的 PHPUnit 测试,所以这是可行的。

问题是,在我的 docker 容器中,我启用了有时需要的 Xdebug。通常,我 docker exec 进入容器并在那里运行测试。 Xdebug 大大减慢了测试速度,所以我在运行测试之前会执行phpdismod -s cli xdebug。然后测试运行速度提高了 100 倍!

现在我想在通过 PhpStorm 运行测试时实现相同的行为。 PhpStorm 提供了一个自己的 docker 容器来运行测试。我不知道如何告诉 PhpStorm 在启动 PHPUnit 之前运行 phpdismod -s cli xdebug。有没有办法做到这一点?

【问题讨论】:

    标签: docker phpunit phpstorm xdebug


    【解决方案1】:

    根据您提到的链接,有一种方法可以设置图像名称,例如shlink_shlink_php:latest

    您需要在自己的镜像中添加entrypoint.sh,并根据环境变量启用或禁用调试模式,例如:

    export DEBUG="${DEBUG:-on}"
    if [ "$DEBUG" == "off" ]; then
      phpdismod -s cli xdebug
    fi
    

    所以默认调试值是on,这意味着保持xdebug模式处于活动状态。但是,如果您传递了一个名为 DEBUG 的环境值,其值为 off,那么它将禁用 xdebug。

    您可以按照here 中的说明传递环境变量。

    或者,您可以检查here 中提到的以下选项,例如尝试通过来自 PHPStorm 的 php 附加选项传递 -dxdebug.remote_enable=0(我不确定阻止与远程解释器的连接是否与禁用调试器相同因为我不是这方面的专家,但你也可以检查一下)

    【讨论】:

      猜你喜欢
      • 2017-11-01
      • 2016-02-04
      • 1970-01-01
      • 2018-09-02
      • 2022-11-17
      • 1970-01-01
      • 2019-04-12
      • 2016-12-14
      • 1970-01-01
      相关资源
      最近更新 更多