如何在docker';s官方php fpm阿尔卑斯山图片?
我正在使用如何在docker';s官方php fpm阿尔卑斯山图片?,php,docker,alpine,Php,Docker,Alpine,我正在使用wordpress:php7.1-fpm-alpine,它基于php:7.1-fpm-alpine() 我已经尝试运行pecl安装xdebug-2.5.0和docker php ext enable xdebug 这会在生成时导致错误: Step 19/19 : RUN pecl install xdebug-2.5.0 && docker-php-ext-enable xdebug ---> Running in 52c988e12cb2 downlo
wordpress:php7.1-fpm-alpine
,它基于php:7.1-fpm-alpine
()
我已经尝试运行pecl安装xdebug-2.5.0和docker php ext enable xdebug
这会在生成时导致错误:
Step 19/19 : RUN pecl install xdebug-2.5.0 && docker-php-ext-enable xdebug
---> Running in 52c988e12cb2
downloading xdebug-2.5.0.tgz ...
Starting to download xdebug-2.5.0.tgz (267,640 bytes)
........................................................done: 267,640 bytes
76 source files, building
running: phpize
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
以下内容足以在该映像上简单安装xdebug:
FROM wordpress:php7.1-fpm-alpine
RUN apk add --no-cache $PHPIZE_DEPS \
&& pecl install xdebug-2.5.0 \
&& docker-php-ext-enable xdebug
构建该图像,然后从结果图像中的壳运行,将产生以下结果:
$ php -i | grep Xdebug
with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans
如果您关心图像大小,可以删除依赖项:
FROM wordpress:php7.1-fpm-alpine
RUN apk --update --no-cache add autoconf g++ make && \
pecl install -f xdebug && \
docker-php-ext-enable xdebug && \
apk del --purge autoconf g++ make
回答得很好@msanschez_aplyca。尽管通过
apk
更正确地删除构建依赖性是:
RUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS \
&& pecl install xdebug-2.5.0 \
&& docker-php-ext-enable xdebug \
&& apk del -f .build-deps
对于PHP>=7.2,需要使用Xdebug 2.6.0+
例如,安装Xdebug 3.0.0(于2020年11月25日发布)
与PHP8.0兼容
现在您可以通过添加以下内容进行设置(使用Xdebug 3.0.0语法:):
# Configure Xdebug
RUN echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.log=/var/www/html/xdebug/xdebug.log" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.discover_client_host=1" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.client_port=9000" >> /usr/local/etc/php/conf.d/xdebug.ini
这个解决方案有效吗?我真的不认为这是一个完整的解决方案。我需要确定所有依赖项。如果使用非基于Alpine的基本映像,请使用apt而不是apk,例如
运行apt-qy install$PHPIZE_DEPS&&pecl install xdebug-2.5.0&&docker php ext enable xdebug
,在我的情况下,它可以与CLI完美地运行,但不会与FPM一起运行。因此,php-i
并没有给出全部情况。如果有人有建议的话,我仍在试图弄清楚。我讨厌docker hub页面中从来没有提到phpize
和$phpize_DEPS
。对于使用php:7.3-fpm-alpine及以上的用户,记得从xdebug包中删除“-2.5.0”。因此,与其加入install xdebug-2.5.0
,不如加入install xdebug
,而不是删除2.5.0,我建议将其更新为3.0.4(),这样您仍然可以知道所获得的版本,并且在需要/想要更新时有一个明确的位置来创建一个自然缓存半身像。答案很好。
# Configure Xdebug
RUN echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.log=/var/www/html/xdebug/xdebug.log" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.discover_client_host=1" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.client_port=9000" >> /usr/local/etc/php/conf.d/xdebug.ini