我想使用php-redis基于官方Docker Docker镜像的扩展名构建我的PHP- FPM镜像,例如,使用以下Dockerfile:php:5.6-fpm。
php-redis
文档说我可以通过这种方式安装扩展,手动安装扩展的依赖项:
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。但是如何使用上面的方法安装它?
apt-get install php5-redis
我发现了两种安装官方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映像中,可以编译扩展并安装它们。
docker-php-ext-install
第二种方法是使用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