Alpine OS上的Php7 Redis客户端

时间:2017-05-25 10:04:34

标签: docker redis dockerfile php-7 alpine

我使用alpine 3.5作为基础Image制作了一个docker图像。我希望我的php apllication在容器内运行与redis服务器通信。但我没有在Alpine中找到任何php7-redis客户端。

周围是否有工作路径?我尝试使用pecl来安装redis但是在alpine中没有pecl包。我尝试用梨但梨没有redis包。有关这个问题的任何想法吗?

3 个答案:

答案 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),您需要从源代码构建扩展。您还需要执行一些依赖项:autoconfgitgcc/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)