提问人:Uriel 提问时间:11/3/2023 最后编辑:Uriel 更新时间:11/3/2023 访问量:41
如何正确配置 Docker 以在每次调试时都不需要导出PHP_IDE_CONFIG
How to properly config Docker to not require export PHP_IDE_CONFIG every time I debug
问:
我正在尝试通过从头开始学习一个基本项目来学习 Laravel。在对其他替代方案进行了一些测试后,我使用这个 docker-nginx-php-laravel 作为基础平台。
它几乎在所有东西上都像魅力一样工作,但是当我尝试从终端调试时,我需要运行
export PHP_IDE_CONFIG="serverName=localhost"
每次,否则 Xdebug/PhpStorm 不会停止并抛出此错误:
“要修复它,请通过环境变量设置服务器名称PHP_IDE_CONFIG和 重新启动调试会话。
我不介意每次都这样做,但我确信这不是正确的工作方式,所以我想知道我需要在 Docker 上配置什么以及在哪里配置,以便默认识别我的终端。
我正在使用 Mac,这是我正在使用的 Xdebug 配置:
[PHP]
zend_extension=xdebug
xdebug.mode = coverage,debug,develop
xdebug.client_port = 9003
xdebug.client_host = host.docker.internal
xdebug.idekey = PHPSTORM
#xdebug.show_error_trace = 1
xdebug.start_with_request = yes
xdebug.file_link_format = phpstorm://open?%f:%l
xdebug.discover_client_host= 1
xdebug.max_nesting_level = 10000
xdebug.log="storage/logs/xdebug.log"
xdebug.log_level = 0
xdebug.extended_info = On
根据谷歌的说法,我应该修改bash配置。
nano ~/.bash_profile
但我不清楚如何从Docker做到这一点(或者这是否是最好的解决方案)。Dockerfile 保持原样
关于docker-compose,受这篇文章的启发,尝试在“laravel”服务下添加一个“环境”行,但没有用:
environment:
PHP_IDE_CONFIG: "serverName=localhost"
有什么建议吗?
答:
3赞
Jeyhun Rashidov
11/3/2023
#1
您应该将 environment 指令放在正确的缩进级别:docker-compose.yml
services:
laravel:
image: your-image-name
ports:
- "80:80"
environment:
- PHP_IDE_CONFIG=serverName=localhost
# ...
或者,如果你的 PHP 服务有一个自定义的 Dockerfile,你也可以这样设置:
FROM php:7.4-fpm
# ...
ENV PHP_IDE_CONFIG "serverName=localhost"
# ...
如果继续遇到问题,请确保检查日志并验证是否确实在 Docker 容器中设置了该变量:
docker exec -it <your-container-name> bash
echo $PHP_IDE_CONFIG
评论