0

我想允许我的 wordpress 实例使用 igbinary 序列化程序通过 Redis 访问数据库内容。我正在使用 Till Krüss 的 Redis Cache Plugin for Worpdress。据我了解,容器应采用以下方式:

如何使用 wordpress iamge 正确包含具有 igbinary 支持的 Redis?我尝试了以下方法:

FROM wordpress:php7.4-fpm-alpine
RUN set -xe \
&& apk update \
&& apk upgrade \
&& apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS \
&& pecl install -o -f igbinary \
&& cd /usr/src/ \
&& pecl bundle redis \
&& docker-php-ext-configure /usr/src/redis --enable-redis-igbinary \
&& docker-php-ext-install -j$(nproc) /usr/src/redis \
&& docker-php-ext-enable redis \
&& docker-php-ext-enable igbinary \
&& apk del .phpize-deps

我读到,pecl 已过时,不应再使用(而是使用泡菜或作曲家,但似乎没有提供正确的软件包)

所以问题是:Dockerfile 必须看起来如何才能允许使用现代标准将 redis 与 igbinary 序列化程序一起使用?

我希望你们能帮助我:)

4

1 回答 1

2

使用以下内容:

FROM wordpress:php7.4-fpm-alpine
RUN set -xe \
&& apk update \
&& apk upgrade \
&& apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS \
# && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
&& wget https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar \
&& chmod +x pickle.phar \
&& mv pickle.phar /usr/local/bin/pickle \
&& pickle install -n igbinary \
&& docker-php-ext-enable igbinary \
&& echo "--enable-redis-igbinary" > cfg-options.txt \
&& pickle install --with-configure-options cfg-options.txt redis \
&& docker-php-ext-enable redis \
&& apk del .phpize-deps \
&& rm -rf cfg-options.txt \
&& php -m | grep igbinary \
&& php -m | grep redis \
&& php -i | grep igbinary \
&& php -i | grep redis \
#&& CLI_VERSION=$(wp cli info | grep "WP-CLI version" | cut -d$'\t' -f2) \
#&& if [ "${CLI_VERSION}" = "2.4.0" ]; then wp cli update --nightly --yes; fi

它在使用 pickel 并尊重在 redis 扩展之前启用 igbinary 扩展的顺序时起作用。

于 2021-01-26T18:54:50.737 回答