使用 Docker 时 PHP 可执行文件 VSCode(Devsense 扩展)不起作用

问题描述 投票:0回答:1

我在 Vscode 中有 Devsense PHP 扩展,我的项目位于 docker 容器内。

我的 docker compose 中有名为“app”的服务,但像这样指定 php 可执行文件不起作用:

"php.executables": {
    "my/sail-php8.2": "./docker/php/bin/php"
  }

我的 ./docker/php/bin/php 里面是这样的:

docker compose exec app php "$@"

但是以某种方式使用此扩展运行 phpunit 测试将无法工作,因为输出一直显示此命令:

php -d display_errors=on /home/erstevn/Code/pilihjurusan/api/vendor/bin/phpunit --teamcity

这意味着我的 php 可执行文件路径不是他们正在使用的路径(他们在我的 Linux 中使用 php 二进制文件)。

那我该怎么办?

编辑

不知何故,我的 PHP 扩展无法在 docker 容器内找到我自定义的 php 版本

PHP extension started.
Couldn't resolve requested PHP version 'my/sail-php8.2' ... Using default 'php'.
Found PHP, version: 8.2.3, Xdebug: not loaded.
php docker visual-studio-code php-devsense
1个回答
0
投票

发现你必须为

php.executables
定义完整路径,所以我将其添加到用户
settings.json

"php.executables": {
    "custom-php-ver": "/home/(username)/(workspace)/api/docker/php/bin"
  }

然后在你的

php/bin
文件中:

cd $(dirname $(readlink -f $0)) && cd ../../ && ./vendor/bin/sail php "$@"

我正在使用 sail,所以这将是 php 可执行文件。以防万一您可能会问

$(dirname $(readlink -f $0))
是做什么的,它只是引用正在执行的 php/bin 文件路径。

我不想使用

pwd
命令,因为 Devtools PHP 扩展将执行相对于您的主文件夹的路径,因此
pwd
将输出
/home/(username)
代替

© www.soinside.com 2019 - 2024. All rights reserved.