我使用 alpine 3.5 作为基础镜像制作了一个 docker 镜像。我希望我的 php 应用程序在容器内运行以与 redis 服务器通信。但我在 Alpine 中找不到任何 php7-redis 客户端。
有解决办法吗?我尝试使用pecl来安装redis,但alpine中没有pecl包。我尝试使用pear,但pear没有redis包。对这个问题有什么想法吗?
对于Alpine 3.6之前的版本,比如目前官方的PHP Alpine 图像 https://hub.docker.com/_/php/(Alpine 3.4),您需要从源代码构建扩展。您还需要一些依赖项来执行此操作:autoconf
, git
, gcc/g++
, and make
。例如,这是在 Alpine 上构建的 PHP 最新稳定版本的完整 Dockerfile,安装并启用了 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 配置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)