首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DockerImagePHP8.1.10与PhpStorm不兼容

DockerImagePHP8.1.10与PhpStorm不兼容
EN

Stack Overflow用户
提问于 2022-09-26 09:21:08
回答 1查看 237关注 0票数 0

我对Xdebug有问题,这是我的Docker配置:

Dockerfile

代码语言:javascript
复制
FROM php:8.1.10-fpm-alpine
RUN apk update
RUN apk add php81-dev gcc make g++ zlib-dev icu-dev bash git openssl yaml-dev

RUN pecl channel-update pecl.php.net

# For YAML
RUN apk add --update --no-cache \
          yaml && \
      # Build dependancy for YAML \
      apk add --update --no-cache --virtual .yaml-build \
          yaml-dev && \
      pecl install yaml && \
      docker-php-ext-enable yaml; \
      apk del .yaml-build

# For Xdebug
RUN pecl install xdebug
RUN docker-php-ext-enable xdebug
RUN echo "xdebug.mode=coverage" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

# For code coverage
RUN echo "memory_limit=-1" >> /usr/local/etc/php/conf.d/docker-php-memory-limit.ini

COPY --from=composer /usr/bin/composer /usr/bin/composer

SHELL ["/bin/bash", "-c"]

WORKDIR /var/www/html

docker-compose.yml

代码语言:javascript
复制
version: '3'

services:
  php:
    build:
      context: ./
      dockerfile: Dockerfile
    volumes:
      - "./:/var/www/html"
      - "~/.composer:/root/.composer"

当我检查我的Docker映像的PHP信息时,一切似乎都是正确的:

代码语言:javascript
复制
PHP 8.1.10 (cli) (built: Sep  1 2022 21:43:31) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.10, Copyright (c) Zend Technologies
    with Xdebug v3.1.5, Copyright (c) 2002-2022, by Derick Rethans

在PhpStorm中,我使用Docker选项正确地设置了远程PHP解释器。

问题在于:

显示的错误:

无法解析PHPUnit版本输出: Xdebug: Config设置'xdebug.remote_enable‘已被重命名,请参阅https://xdebug.org/docs/upgrade_guide#changed-xdebug.remote_enable (见:https://xdebug.org/docs/errors#CFG-C-CHANGED) PHPUnit 9.5.25 #StandWith乌克兰的升级指南

由于这个错误,我无法在PHPUnit模式下运行coverage模式的PhpStorm。

错误来自我的Dockerfile中的这一行:

代码语言:javascript
复制
RUN docker-php-ext-enable xdebug

如果我删除它,我的PHP配置就没有Xdebug:

代码语言:javascript
复制
PHP 8.1.10 (cli) (built: Sep  1 2022 21:39:29) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.10, Copyright (c) Zend Technologies

使用PHPStorm,我可以在没有错误的情况下启动单元测试,但是,我无法访问单元测试的覆盖范围。

如果我从我的Dockerfile中删除了RUN docker-php-ext-enable xdebug,就不会激活PHPStorm,因此我无法使用PHPStorm查看测试所涵盖的文件。

当我试图在PHPStorm上运行覆盖范围的单元测试时:

你能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-26 09:24:58

--如果我删除它,就不会激活Xdebug,所以我不能用PHPStorm查看我的测试所涵盖的文件。

这样做是不对的,如果您希望在Xdebug 3中同时包含覆盖率和步骤调试器,则需要更改:

RUN echo "xdebug.mode=coverage" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

至:

RUN echo "xdebug.mode=coverage,debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

并将xdebug.remote_enable设置从设置它的位置移除。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73852029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档