我使用alpine 3.5作为基础Image制作了一个docker图像。我希望我的php apllication在容器内运行与redis服务器通信。但我没有在Alpine中找到任何php7-redis客户端。
周围是否有工作路径?我尝试使用pecl来安装redis但是在alpine中没有pecl包。我尝试用梨但梨没有redis包。有关这个问题的任何想法吗?
答案 0 :(得分:2)
php7-redis在v3.6(昨天发布)和edge(滚动/不稳定),因为你可以find yourself轻松地pkgs.alpinelinux.org。
pecl目前由包php7-pear提供。
答案 1 :(得分:2)
对于3.6之前的Alpine版本,例如当前的官方PHP Alpine image(Alpine 3.4),您需要从源代码构建扩展。您还需要执行一些依赖项:autoconf
,git
,gcc/g++
和make
。作为一个例子,这是一个完整的Dockerfile,用于在Alpine上构建的最新稳定版PHP,安装并启用了php7的redis扩展:
FROM php:alpine
RUN apk add --no-cache autoconf git g++ make
RUN \
git clone https://github.com/phpredis/phpredis.git && \
cd phpredis && \
git checkout php7 && \
phpize && \
./configure && \
make && make install && \
docker-php-ext-enable redis
如果你想要一个较小的图像,你可以删除phpredis目录和之后克隆和构建它所需的deps。如果您没有使用官方PHP图片,那么您需要使用几个命令替换docker-php-ext-enable redis
以将redis.so
移到您需要的位置并添加extension=redis.so
行你的PHP配置。
答案 2 :(得分:2)