这是我的 Dockerfile
FROM php:8.1-fpm-alpine3.15
RUN apk update; \
apk upgrade;
RUN apk add libzip-dev
RUN docker-php-ext-install zip
RUN apk add --no-cache libpng libpng-dev && docker-php-ext-install gd && apk del libpng-dev
RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN apk add --no-cache pcre-dev $PHPIZE_DEPS && pecl install redis && docker-php-ext-enable redis.so
我在构建过程中收到此错误
“pecl.php.net/redis”包没有可用的版本
只需在
pecl update-channels
之前添加 pecl -o -f install redis
。
已添加
apk del $PHPIZE_DEPS
进行清理。
FROM php:8.1-fpm-alpine3.15
RUN apk update; \
apk upgrade;
RUN apk add libzip-dev
RUN docker-php-ext-install zip
RUN apk add --no-cache libpng libpng-dev && \
docker-php-ext-install gd && \
apk del libpng-dev
RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN apk add --no-cache pcre-dev $PHPIZE_DEPS && \
pecl update-channels && \
pecl install redis && \
docker-php-ext-enable redis && \
apk del $PHPIZE_DEPS
查看这个 github 问题:https://github.com/laradock/laradock/issues/1661 有人在不同的情况下遇到了类似的问题。有几种可能的解决方法。
归结为您的连接可能无法检索软件包,您需要执行一些额外的步骤,例如更新频道,然后才能搜索/安装 redis。
我遇到了类似的问题,每次都会给我不同的错误消息
错误:“redis”不存在或
错误:“xdebug”不存在
我设法用这个解决了这个问题 https://github.com/laradock/laradock/issues/1661#issuecomment-849813400
# add these 2 lines before pecl install solved my download/connection issue
RUN pear update-channels
RUN pecl update-channels
RUN pecl install redis xdebug mongodb \
&& docker-php-ext-enable redis xdebug mongodb
仅将
pecl install redis
替换为 pecl -o -f install redis
FROM php:8.1-fpm-alpine3.15
RUN apk update; \
apk upgrade;
RUN apk add libzip-dev
RUN docker-php-ext-install zip
RUN apk add --no-cache libpng libpng-dev && docker-php-ext-install gd && apk del libpng-dev
RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN apk add --no-cache pcre-dev $PHPIZE_DEPS && pecl -o -f install redis && docker-php-ext-enable redis.so
对于那些在访问
pecl
模块时遇到问题的人,这里有一个非 pecl 的方法。
RUN git clone https://github.com/phpredis/phpredis.git
RUN cd phpredis; phpize; ./configure; make && make install
RUN docker-php-ext-install '/var/www/html/phpredis' && docker-php-ext-enable redis
无需pecl即可安装。