Docker 在debian:9-slim容器下的PHP项目中启用Xdebug
这是我正在处理的一个现有项目的Dockerfile。我想为托管的Symfony项目激活Xdebug。问题是我需要pecl来安装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" \
##
# 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的官方文档。