我有一个Dockerfile
依靠PHP:8.1-apache
,运行了几个月。
Once PHP:8.1-apache
开始使用 Debian bookworm,memcached 客户端在构建镜像时开始出错。
The Dockerfile
涉及的行是
FROM php:8.1-apache
...
RUN apt-get update --fix-missing -q \
&& apt-get install -y curl mcrypt gnupg build-essential software-properties-common wget vim zip unzip libxml2-dev libz-dev libpng-dev libmemcached-dev \
&& pecl install memcached \
&& docker-php-ext-enable memcached \
...
图像构建时的错误是:
checking for libmemcached location... configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR> to specify the prefix where libmemcached headers and library are located
ERROR: `/tmp/pear/temp/memcached/configure --with-php-config=/usr/local/bin/php-config --with-libmemcached-dir=no --with-zlib-dir=no --with-system-fastlz=no --enable-memcached-igbinary=no --enable-memcached-msgpack=no --enable-memcached-json=no --enable-memcached-protocol=no --enable-memcached-sasl=yes --enable-memcached-session=yes' failed
固定旧稳定版本可以解决问题,
FROM php:8.1-apache-bullseye
这清楚地表明该问题是由切换到新的 Debian 版本引起的。
可以做什么来使用bookworm
并继续使用相同的库和流程?
确保安装了这些库(特别是libssl-dev
):
RUN apt install -y libmemcached-dev zlib1g-dev libssl-dev
感谢 AKorezin:https://github.com/php-memcached-dev/php-memcached/issues/541#issuecomment-1624041385 https://github.com/php-memcached-dev/php-memcached/issues/541#issuecomment-1624041385
然后您可以按照通常的 PECL 安装过程进行操作:
RUN yes '' | pecl install -f memcached-3.2.0 \
&& docker-php-ext-enable memcached
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)