一尘不染

如何使用官方的PHP Docker映像方法安装php-redis扩展?

docker

我想使用php-redis基于官方Docker
Docker镜像的
扩展名构建我的PHP-
FPM镜像,例如,使用以下Dockerfile:php:5.6-fpm

文档说我可以通过这种方式安装扩展,手动安装扩展的依赖项:

FROM php:5.6-fpm
# Install modules (iconv, mcrypt and gd extensions)
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng12-dev \
    && docker-php-ext-install iconv mcrypt \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install gd
CMD ["php-fpm"]

在没有Docker的情况下,我使用安装了它apt-get install php5-redis。但是如何使用上面的方法安装它?


阅读 242

收藏
2020-06-17

共1个答案

一尘不染

我发现了两种安装官方php-fpm Docker image的php-
redis
扩展的方法。他们来了:

第一种方法是从源代码编译redis并进行安装。

RUN curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/2.2.7.tar.gz \
    && tar xfz /tmp/redis.tar.gz \
    && rm -r /tmp/redis.tar.gz \
    && mv phpredis-2.2.7 /usr/src/php/ext/redis \
    && docker-php-ext-install redis

docker-php-ext-install 脚本包含在php-fpm映像中,可以编译扩展并安装它们。

第二种方法是使用PECL。

正如TimWolla回答的那样,但就我而言,默认情况下未安装PECL。

RUN pecl install -o -f redis \
&&  rm -rf /tmp/pear \
&&  echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini
2020-06-17