Docker使用Memcache扩展安装PHP-7-fpm?失败,无法找到config.m4

mah*_*n3d 2 php git memcached docker

我正在尝试使用支持memcache的PHP版本7.0安装Docker,我的docker文件如下所示,但是它失败@STEP 10有错误

Step 10 : RUN /usr/bin/phpize
 ---> Running in 450678a59cd4
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module

[31mERROR[0m: Service 'php' failed to build: The command '/bin/sh -c /usr/bin/phpize' returned a non-zero code: 1 
Run Code Online (Sandbox Code Playgroud)

Docker文件如下

FROM php:7.0-fpm
#FROM php:5.6-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng12-dev \
    && docker-php-ext-install -j$(nproc) iconv mcrypt \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd     

RUN docker-php-ext-install mysqli mbstring pdo_mysql 

# Download and Installing php libraries 
RUN apt-get -y install php-pear php5-dev 

# Download and Installing git and vim 
RUN apt-get -y install git vim gcc

# Download and Installing zip unzip 
RUN apt-get -y install zip unzip 

# install PHP PEAR extensions 
RUN apt-get -y install wget 

#RUN wget http://pecl.php.net/get/memcache-3.0.9-dev.tgz && gunzip memcache-3.0.9-dev.tgz && tar -xvf memcache-3.0.9-dev.tar && cd memcache-3.0.9-dev \
#   && phpize && ./configure && make && make install  

# RUN git clone https://github.com/websupport-sk/pecl-memcache && cd pecl-memcache 

RUN apt-get -y install libmemcached-dev libmemcached11
RUN git clone https://github.com/php-memcached-dev/php-memcached && cd php-memcached && git checkout -b php7 origin/php7
RUN /usr/bin/phpize 
RUN ./configure && make && make install

RUN apt-get install -y memcached    

EXPOSE 9000

COPY ./www.conf /etc/php-fpm.d/www.conf
COPY ./php.ini /etc/php.ini
COPY ./php-fpm.conf /etc/php-fpm.conf
COPY ./40-memcache.ini /etc/php.d/40-memcache.ini

#COPY bootstrap.sh /opt/bootstrap.sh
#RUN chmod +x /opt/bootstrap.sh
#ENTRYPOINT ["/opt/bootstrap.sh"]
Run Code Online (Sandbox Code Playgroud)

Mah*_*alt 5

这是你的Dockerfiles应该是这样的:

PHP-FPM Dockerfile:

FROM php:7.0-fpm

# ... 

RUN apt-get update && apt-get install -y \
    libpq-dev \
    libmemcached-dev \
    curl

# ... 

# Install Memcached for php 7
RUN curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
    && mkdir -p /usr/src/php/ext/memcached \
    && tar -C /usr/src/php/ext/memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
    && docker-php-ext-configure memcached \
    && docker-php-ext-install memcached \
    && rm /tmp/memcached.tar.gz


# ... 

CMD ["php-fpm"]

EXPOSE 9000
Run Code Online (Sandbox Code Playgroud)

Memcached Dockerfile:

FROM memcached:latest

CMD ["memcached"]

EXPOSE 11211
Run Code Online (Sandbox Code Playgroud)

这取自https://github.com/LaraDock/laradock