我的 M3 Macbook Pro 上发生了一个奇怪的情况,导致我无法调试特定的 Docker 容器。
这在我之前的 M2 Macbook Pro 上运行顺利。
我的工作流程是使用 PhpStorm 构建 Laravel API 存储库。以下是
docker-compose.yml
文件中的环境选项:
environment:
APACHE_DOCUMENT_ROOT: /var/www/html/public/
PHP_EXTENSION_XDEBUG: 1
PHP_EXTENSION_MONGODB: 1
PHP_EXTENSION_JSON: 1
PHP_EXTENSION_GD: 1
PHP_EXTENSION_PDO_SQLITE: 1
PHP_INI_MEMORY_LIMIT: 256M
PHP_INI_XDEBUG__MODE: "develop,debug"
PHP_INI_XDEBUG__CLIENT_HOST: "host.docker.internal"
PHP_INI_XDEBUG__START_WITH_REQUEST: "${XDEBUG:-yes}"
PHP_IDE_CONFIG: "serverName=app.local"
当容器启动并将
XDEBUG
设置为 yes
时,我可以向我的 API 发送请求,应用程序会处理它们,没有问题。但是,当我在 PhpStorm 中切换调试侦听时,容器内的进程不可避免地会失败,并显示以下消息的变体:
[core:notice] [pid 7] AH00052: child pid 2764 exit signal Segmentation fault (11)
这阻止了我完全使用调试器。
以下是我分配给 Docker 引擎的资源:
将容器中的 php 从 8.1 更新到 8.2 解决了这个问题。