Smr*_*jan 4 redis docker dockerfile php-7 alpine-linux
我使用 alpine 3.5 作为基础镜像制作了一个 docker 镜像。我希望在容器内运行的 php 应用程序与 redis 服务器进行通信。但我在 Alpine 中找不到任何 php7-redis 客户端。
有解决方法吗?我尝试使用 pecl 安装 redis,但 alpine 中没有 pecl 包。我尝试使用 pear 但 pear 没有 redis 包。关于这个问题的任何想法?
对于 3.6 之前的 Alpine 版本,例如当前的官方PHP Alpine 映像(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
Run Code Online (Sandbox Code Playgroud)
如果你想要一个更小的图像,你可以删除 phpredis 目录和之后克隆和构建它所需的 deps。如果您没有使用官方 PHP 映像,那么您将需要替换docker-php-ext-enable redis为几个命令以将其移动到redis.so您需要的位置并将该extension=redis.so行添加到您的 PHP 配置中。
| 归档时间: |
|
| 查看次数: |
2302 次 |
| 最近记录: |