PHP 带有 php-memcached 的 Dockerfile 不工作
PHP Dockerfile with php-memcached not working
我无法使用 PHP-Memcached 扩展构建任何图像。他们都给我一条错误消息,我尝试了多少次都没有帮助。我什至找不到任何 PHP 包含 memcached 的 Dockerfile,它可以工作。即使 PHP docker 页面的主要 page 页面也有带有 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 main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-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 分开了。第一个是容器,第二个安装在 PHP 的 Dockerfile 上。
我的 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 中。
我无法使用 PHP-Memcached 扩展构建任何图像。他们都给我一条错误消息,我尝试了多少次都没有帮助。我什至找不到任何 PHP 包含 memcached 的 Dockerfile,它可以工作。即使 PHP docker 页面的主要 page 页面也有带有 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 main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-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 分开了。第一个是容器,第二个安装在 PHP 的 Dockerfile 上。 我的 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 中。