使用Docker安装PHP7 fpm和memcached

Mau*_*uro 1 memcached libmemcached docker dockerfile docker-compose

我有一个使用Docker的应用程序,并且正在尝试使用php7-fpm安装memcached。

根据官方的 docker 文档,我在Dockerfile中有:

# PHP Version
FROM php:7.0-fpm

...

# Install Memcached
RUN apt-get install -y libmemcached-dev && \
pecl install memcached && \
docker-php-ext-enable memcached
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误:

pecl/memcached requires PHP (version >= 5.2.0, version <= 6.0.0, excluded versions: 6.0.0), installed version is 7.0.9
Run Code Online (Sandbox Code Playgroud)

我不想切换到PHP 5.6。有任何想法吗?

kgo*_*ski 6

我们在构建php7容器时从头开始构建memcache扩展。也许我们的方法可以帮助您或为您指明正确的方向。Dockerhub中的文档确实似乎是有问题的,尝试使用pecl,它在这里也不起作用。

这就是我们的Dockerfile中的样子:

RUN apt-get update && apt-get install -y 
        libmemcached11 \
        libmemcachedutil2 \
        libmemcached-dev \
        libz-dev \
        git \
    && cd /root \
    && git clone -b php7 https://github.com/php-memcached-dev/php-memcached \
    && cd php-memcached \
    && phpize \
    && ./configure \
    && make \
    && make install \
    && cd .. \
    && rm -rf  php-memcached \
    && echo extension=memcached.so >> /usr/local/etc/php/conf.d/memcached.ini \
    && apt-get remove -y build-essential libmemcached-dev libz-dev \
    && apt-get remove -y libmemcached-dev libz-dev \
    && apt-get autoremove -y \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean
Run Code Online (Sandbox Code Playgroud)