Клиент Redis Php7 на Alpine OS

Я создал образ докера, используя alpine 3.5 в качестве базового образа. Я хочу, чтобы мое приложение php, работающее внутри контейнера, взаимодействовало с сервером Redis. Но я не нашел ни одного клиента php7-redis в Alpine.

Есть ли обходной путь? Я пытался использовать pecl для установки redis, но в alpine нет пакета pecl. Я пробовал с pear, но у pear нет пакета redis. Есть мысли по этому вопросу?


person SmrutiRanjan    schedule 25.05.2017    source источник


Ответы (3)


Вы можете найти свое решение здесь https://pkgs.alpinelinux.org/package/edge/community/x86_64/php7-redis

person Ankit Mehta    schedule 29.05.2017

Для версий Alpine до 3.6, таких как текущий официальный образ PHP Alpine (Alpine 3.4) , вам нужно собрать расширение из исходного кода. Для этого вам также потребуется несколько зависимостей: autoconf, git, gcc/g++ и make. В качестве примера, это полный Dockerfile для последней стабильной версии PHP, построенной на Alpine, с установленным и включенным расширением Redis для php7:

FROM php:alpine

RUN apk add --no-cache autoconf git g++ make

RUN \
  git clone https://github.com/phpredis/phpredis.git && \
  cd phpredis && \
  git checkout php7 && \
  phpize && \
  ./configure && \
  make && make install && \
  docker-php-ext-enable redis

Если вам нужен образ меньшего размера, вы можете удалить каталог phpredis и файлы deps, которые были необходимы для его клонирования и последующей сборки. Если вы не используете официальный образ PHP, вам нужно будет заменить docker-php-ext-enable redis парой команд, чтобы переместить redis.so туда, где вам это нужно, и добавить строку extension=redis.so в конфигурацию PHP.

person Paul    schedule 26.05.2017

php7-redis находится в версии 3.6 (выпущен вчера) и Edge (переходящий/нестабильный), как вы можете легко найдите себя на pkgs.alpinelinux.org .

pecl в настоящее время предоставляется пакетом php7-pear.

person Jakub Jirutka    schedule 25.05.2017