web-dev-qa-db-ja.com

Dockerの公式php-fpm-AlpineイメージにXDebugをインストールするにはどうすればよいですか?

wordpress:php7.1-fpm-Alpineに基づくphp:7.1-fpm-Alpineを使用しています( https://github.com/docker-library/wordpress/blob/master/php7.1/fpm-Alpine/Dockerfile )。

RUN pecl install 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.
17

そのイメージに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
33
tianon

画像サイズが心配な場合は、依存関係を削除できます。

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
10

素晴らしい回答@msanchez_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
1
AndrewMcLagan