Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 在debian:9-slim容器下的PHP项目中启用Xdebug_Docker_Debian_Xdebug - Fatal编程技术网

Docker 在debian:9-slim容器下的PHP项目中启用Xdebug

Docker 在debian:9-slim容器下的PHP项目中启用Xdebug,docker,debian,xdebug,Docker,Debian,Xdebug,这是我正在处理的一个现有项目的Dockerfile。我想为托管的Symfony项目激活Xdebug。问题是我需要pecl来安装Xdebug,但我不知道在哪里/如何添加它 ## # Base ## FROM debian:9-slim as base ENV TERM="xterm" \ DEBIAN_FRONTEND="noninteractive" \ TIMEZONE="Europe/Paris" \

这是我正在处理的一个现有项目的Dockerfile。我想为托管的Symfony项目激活Xdebug。问题是我需要pecl来安装Xdebug,但我不知道在哪里/如何添加它

##
#  Base
##

FROM debian:9-slim as base

ENV TERM="xterm" \
    DEBIAN_FRONTEND="noninteractive" \
    TIMEZONE="Europe/Paris" \
    COMPOSER_ALLOW_SUPERUSER=1 \
    NODE_VERSION=8.12.0 \
    PHP_VERSION=7.2

# System depdendencies
RUN apt-get update --quiet && \
    apt-get install --quiet --no-install-recommends --yes \
        apt-transport-https \
        ca-certificates \
        lsb-release \
        wget && \
    wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg && \
    echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" >> /etc/apt/sources.list.d/php.list && \
    apt-get update --quiet && \
    apt-get install --quiet --no-install-recommends --yes \
        curl \
        git \
        nginx \
        php${PHP_VERSION} \
        php${PHP_VERSION}-apcu \
        php${PHP_VERSION}-curl \
        php${PHP_VERSION}-dom \
        php${PHP_VERSION}-fpm \
        php${PHP_VERSION}-gd \
        php${PHP_VERSION}-iconv \
        php${PHP_VERSION}-intl \
        php${PHP_VERSION}-mbstring \
        php${PHP_VERSION}-mysql \
        php${PHP_VERSION}-opcache \
        php${PHP_VERSION}-pdo \
        php${PHP_VERSION}-uuid \
        php${PHP_VERSION}-xml \
        php${PHP_VERSION}-simplexml \
        php${PHP_VERSION}-zip \
        supervisor \
        p7zip-full \
        tzdata \
        unzip \
        libxml2-dev \
        php${PHP_VERSION}-soap \
        vim && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
    mkdir /run/php && \
    cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && \
    echo "${TIMEZONE}" > /etc/timezone

# Composer

RUN curl -sS https://getcomposer.org/installer | php -- --version=1.10.9 --install-dir=/usr/local/bin --filename=composer && \
    composer global require "hirak/prestissimo:^0.3" --prefer-dist --no-progress --no-suggest --classmap-authoritative && \
    composer clear-cache

# Yarn

RUN curl -L -o /tmp/nodejs.tar.gz https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz && \
    tar xfvz /tmp/nodejs.tar.gz -C /usr/local --strip-components=1 && \
    rm -f /tmp/nodejs.tar.gz && \
    npm install yarn -g

COPY .docker/php.ini /etc/php/${PHP_VERSION}/cli/conf.d/50-setting.ini
COPY .docker/php.ini /etc/php/${PHP_VERSION}/fpm/conf.d/50-setting.ini
COPY .docker/pool.conf /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf
COPY .docker/nginx.conf /etc/nginx/nginx.conf
COPY .docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf

EXPOSE 80

CMD ["supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

WORKDIR /app
我试图在文件中间添加这个词:

RUN pecl install xdebug \
    && docker-php-ext-enable xdebug \
但构建过程毫无线索地失败了

因此,我在结尾添加了以下内容:

FROM php:7.2-fpm
RUN pecl install \
    && pecl install xdebug \
    && docker-php-ext-enable xdebug
没有错误,但是Xdebug仍然不工作(phpinfo中没有任何内容)


怎么了?

我很久没有用pecl了。。。但是我想尽力帮助你。。。您是否应该在您试图添加的第一行(“pecl安装”)的“安装”和“\”之间添加一些内容?您是否尝试删除“pecl安装”?删除第一行时没有发生任何问题!你说你不使用pecl,但当我在谷歌上搜索Xdebug时,它总是与pecl一起安装,还有其他方法吗?我在一个由docker图像“php:7.2-fpm”创建的容器中运行“pecl安装Xdebug”。它已成功安装,但在您将“zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so”添加到php.ini之后。你这么做了吗?你怎么能使用几个docker图像?正如您所看到的,我使用的是“debian:9-slim”,其中没有pecl!$docker run-it--rm--name php7 test php:7.2-fpm/bin/bash然后:$pecl安装xdebug现在,您应该安装xdebug了。请参阅安装程序末尾的注释。这是一个非常简单的问题。我建议你看一下dockerfile的官方文档。