PHPのオフィシャルDockerイメージにredis exensionを追加する方法


DockerのOfficialイメージで、追加のextensionをインストールする方法としては

Dockerfile
RUN docker-php-ext-install pdo

とすればOKですが、redisのextensionをインストールするときは、単純に

Dockerfile
RUN docker-php-ext-install redis

ではインストールできません。

ネットに上がっている情報そのままではNGだったので、いろいろいじってやっと通った方法を個人的備忘録。

結論

Dockerfile
FROM php:7.1.2-fpm-alpine

RUN apk update && \
    apk --no-cache upgrade && \
    docker-php-source extract && \
    curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/php7.tar.gz && \
    tar xfz /tmp/redis.tar.gz -C /tmp && \
    rm -r /tmp/redis.tar.gz && \
    mv /tmp/phpredis-php7 /usr/src/php/ext/redis && \
    docker-php-ext-install redis <その他exension...>

ポイントはdocker-php-source extractを明示的に実行すること。
これをやらないと/usr/src/php/extディレクトリが作成されないので、mv /tmp/phpredis-php7 /usr/src/php/ext/redisが失敗します。

ここにたどり着くまで3時間を費やしてしまった…。