带有PHP memcached的PHP Dockerfile无法工作



我无法使用PHP Memcached扩展构建任何图像。所有这些都会给我一条错误信息,以及我尝试了多少次都没有帮助。我甚至找不到任何包含memcached的PHP Dockerfile,它很有效。即使是PHP docker页面的主页也有带有PHP Memcached解决方案的Dockerfile,而且它也不起作用。

FROM php:5.6-cli
RUN apt-get update && apt-get install -y libmemcached-dev zlib1g-dev 
&& pecl install memcached-2.2.0 
&& docker-php-ext-enable memcached

这是我最后一次尝试代码

FROM php:7.4-fpm
ADD php.ini /usr/local/etc/php/conf.d/php.ini
RUN docker-php-ext-install pdo pdo_mysql
# for mysqli if you want
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
RUN printf "deb http://archive.debian.org/debian/ jessie mainndeb-src http://archive.debian.org/debian/ jessie mainndeb http://security.debian.org jessie/updates mainndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y libz-dev libmemcached-dev && 
pecl install memcached && 
docker-php-ext-enable memcached

谁知道这件事?谢谢,的建议

看起来我终于找到了问题的解决方案,它与/etc/apt/source.list 相连

deb http://ftp.us.debian.org/debian buster main
deb http://ftp.us.debian.org/debian buster-updates main

然后只需在Dockerfile中添加这条COPY ./sources.list /etc/apt/sourcee.list行,它就会工作

FROM php:7.2-fpm
COPY ./sources.list /etc/apt/sourcee.list

我已经分离了memcached和phm-memcached。第一个是容器,第二个安装在Dockerfile for PHP上。我的docker撰写文件:

version: '3'
services:
# PHP
php:
build:
context: docker/php7-fpm
volumes:
// etc...
memcached:
image: memcached:latest
hostname: memcached
networks:
- stack

在我的PHP Dockerfile中:

FROM php:7-4-fpm
// install dependencies...
# php-memcached
RUN set -ex 
&& rm -rf /var/lib/apt/lists/* 
&& MEMCACHED="`mktemp -d`" 
&& curl -skL https://github.com/php-memcached-dev/php-memcached/archive/master.tar.gz | tar zxf - --strip-components 1 -C $MEMCACHED 
&& docker-php-ext-configure $MEMCACHED 
&& docker-php-ext-install $MEMCACHED 
&& rm -rf $MEMCACHED

有了这个,在我的symfony应用程序中,我可以将数据存储在memcached中。

最新更新