[REDIS] 어떻게 공식 PHP 도커 이미지 접근법을 사용하여 PHP-레디 스 확장을 설치 하는가?
REDIS어떻게 공식 PHP 도커 이미지 접근법을 사용하여 PHP-레디 스 확장을 설치 하는가?
나는 내 PHP-FPM 이미지를 구축하려면 PHP - 레디 스이 Dockerfile 사용하여, 예를 들어 공식 PHP 도커 이미지를 기반으로 확장, : PHP : 5.6 - FPM을.
워드 프로세서 내가 수동으로 확장에 대한 종속성을 설치, 확장이 방법을 설치할 수 있다고 :
FROM php:5.6-fpm
# Install modules (iconv, mcrypt and gd extensions)
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng12-dev \
&& docker-php-ext-install iconv mcrypt \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install gd
CMD ["php-fpm"]
도커 나는 그것을 설치하지 않고 PHP5 - 레디 스를 설치 apt-get을. 그러나 어떻게 위의 방법을 사용하여 설치할 수 있습니까?
해결법
-
==============================
1.레디 스 그러므로 당신이 고정 표시기가-PHP-EXT 설치 사용할 수 없습니다 "PHP-SRC"에 포함되어 확장되지 않습니다. 사용 PECL :
레디 스 그러므로 당신이 고정 표시기가-PHP-EXT 설치 사용할 수 없습니다 "PHP-SRC"에 포함되어 확장되지 않습니다. 사용 PECL :
RUN pecl install -o -f redis \ && rm -rf /tmp/pear \ && docker-php-ext-enable redis
-
==============================
2.내 의견은, 가장 쉬운 방법은 다음과 같습니다
내 의견은, 가장 쉬운 방법은 다음과 같습니다
RUN은 레디 스를 설치 PECL && 레디 스를 고정 표시기-PHP-EXT가 활성화
;)
-
==============================
3.나는 공식 PHP-FPM 도커 이미지의 PHP-레디 스 확장을 설치하는 두 가지 방법을 발견했습니다. 여기 있습니다:
나는 공식 PHP-FPM 도커 이미지의 PHP-레디 스 확장을 설치하는 두 가지 방법을 발견했습니다. 여기 있습니다:
첫 번째 방법은 소스에서 레디 스를 컴파일하고 설치하는 것입니다.
RUN curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/2.2.7.tar.gz \ && tar xfz /tmp/redis.tar.gz \ && rm -r /tmp/redis.tar.gz \ && mv phpredis-2.2.7 /usr/src/php/ext/redis \ && docker-php-ext-install redis
고정 표시기-PHP-EXT-설치 스크립트는 PHP-FPM 이미지에 포함되어 있으며이를 확장을 컴파일하고 설치할 수 있습니다.
당신이 그것을 할 수있는 두 번째 방법은 PECL 함께.
TimWolla 대답, 당신은 PECL 함께 할 수 있지만, 내 경우에는, PECL은 기본적으로 설치되지 않습니다.
RUN pecl install -o -f redis \ && rm -rf /tmp/pear \ && echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini
-
==============================
4.약간 현재 (: 7.0.8-FPM-고산 및 PHP : 7.0.8-고산 PHP를 테스트)에 고정 표시기 이미지의 PHP 7 버전 starikovs 및 skyred 답변의 버전을 수정.
약간 현재 (: 7.0.8-FPM-고산 및 PHP : 7.0.8-고산 PHP를 테스트)에 고정 표시기 이미지의 PHP 7 버전 starikovs 및 skyred 답변의 버전을 수정.
PHP 7의 새로 출시 된 3.0 버전 (6 월 2016) 사용합니다.
ENV PHPREDIS_VERSION 3.0.0 RUN mkdir -p /usr/src/php/ext/redis \ && curl -L https://github.com/phpredis/phpredis/archive/$PHPREDIS_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/redis --strip 1 \ && echo 'redis' >> /usr/src/php-available-exts \ && docker-php-ext-install redis
-
==============================
5.@starikovs 답변에 따라. 나는 고정 표시기 스타일에 대한 변수를 추가했습니다.
@starikovs 답변에 따라. 나는 고정 표시기 스타일에 대한 변수를 추가했습니다.
# install phpredis extension ENV PHPREDIS_VERSION 2.2.7 RUN curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/$PHPREDIS_VERSION.tar.gz \ && tar xfz /tmp/redis.tar.gz \ && rm -r /tmp/redis.tar.gz \ && mv phpredis-$PHPREDIS_VERSION /usr/src/php/ext/redis \ && docker-php-ext-install redis
-
==============================
6.당신이 세션 핸들러로 레디 스를 사용하려면;
당신이 세션 핸들러로 레디 스를 사용하려면;
RUN { \ echo 'session.save_handler = redis'; \ echo 'session.save_path = tcp://redis:6379'; \ } >> /usr/local/etc/php/conf.d/docker-php-ext-redis.ini
당신이 2015 년 PHP 7 레디 스 확장을 사용하려면 (의 skyred 대답에서 차용);
ENV PHPREDIS_VERSION php7 RUN curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/$PHPREDIS_VERSION.tar.gz \ && tar xfz /tmp/redis.tar.gz \ && rm -r /tmp/redis.tar.gz \ && mv phpredis-$PHPREDIS_VERSION /usr/src/php/ext/redis \ && docker-php-ext-install redis
-
==============================
7.나는 PECL 및 PHP 공식 고정 표시기 확장 스크립트의 조합을 사용하고 있습니다
나는 PECL 및 PHP 공식 고정 표시기 확장 스크립트의 조합을 사용하고 있습니다
RUN pecl bundle -d /usr/src/php/ext redis \ && rm /usr/src/php/ext/redis-*.tgz \ && docker-php-ext-install redis
PHP7 위해 당신은 공식 레디 스의 PECL 해제 또는 사용의 자식 기다릴 필요가 :
RUN apt-get update \ && apt-get install git -y -q \ && git clone -b php7 https://github.com/phpredis/phpredis.git /usr/src/php/ext/redis \ && docker-php-ext-install redis
-
==============================
8.이 고산 이미지 작동합니다 :
이 고산 이미지 작동합니다 :
RUN set -xe \ && apk add --no-cache --update --virtual .phpize-deps $PHPIZE_DEPS \ && pecl install -o -f redis \ && echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini \ && rm -rf /usr/share/php \ && rm -rf /tmp/* \ && apk del .phpize-deps
편집 : 추가없는 백 슬래시
-
==============================
9.살짝 고정 표시기 이미지의 현재 버전 starikovs 및 skyred 답변의 버전을 수정. 5-FPM-고산 : PHP에서 테스트
살짝 고정 표시기 이미지의 현재 버전 starikovs 및 skyred 답변의 버전을 수정. 5-FPM-고산 : PHP에서 테스트
# install phpredis extension ENV PHPREDIS_VERSION 2.2.8 ADD https://github.com/phpredis/phpredis/archive/$PHPREDIS_VERSION.tar.gz /tmp/redis.tar.gz RUN tar xzf /tmp/redis.tar.gz -C /tmp \ && mkdir -p /usr/src/php/ext \ && mv /tmp/phpredis-$PHPREDIS_VERSION /usr/src/php/ext/redis \ && echo 'redis' >> /usr/src/php-available-exts \ && docker-php-ext-install redis \ && rm -rf /usr/src/php/ext/redis
-
==============================
10.당신의 Dockerfile에서 당신은 REPO를 복제 할 수와 함께 설치한다 :
당신의 Dockerfile에서 당신은 REPO를 복제 할 수와 함께 설치한다 :
RUN git clone https://github.com/phpredis/phpredis.git /tmp/phpredis \ && cd /tmp/phpredis \ && git checkout -b 3.1.2 \ ## or the release you need # && phpize \ && ./configure \ && make \ && make install
from https://stackoverflow.com/questions/31369867/how-to-install-php-redis-extension-using-the-official-php-docker-image-approach by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 어떻게 resque 노동자 큐에 작업을 파괴? (0) | 2020.01.11 |
---|---|
[REDIS] 어떻게 다른 키 - 값되는 NoSQL 데이터베이스의 aerospike 다른 무엇입니까? [닫은] (0) | 2020.01.11 |
[REDIS] 세트 구성원에 대한 TTL (0) | 2020.01.11 |
[REDIS] 레디 스 키 내에서 콜론의 목적은 무엇인가 (0) | 2020.01.11 |
[REDIS] 어떻게 레디 스와 비활성화 지속성? (0) | 2020.01.10 |