PHP 공식 Docker 컨테이너에 redis exension을 추가하는 메모
Docker 컨테이너에서 실현하고 싶은 것은이 그림의 내용입니다. 물론, redis의 클러스터링도 별도로 검토합니다만, PHP와 redis의 접속을 Docker 컨테이너상에서, 어떻게 설정할까? 자동화하여 몇 번이라도 동일한 소프트웨어 구성을 만들 수 있을까? 라는 과제입니다.
도전
Docker Store PHP 공식 리포지토리의 컨테이너 이미지에 redis 확장을 추가하려고하면 다음과 같이 작성하면 실패합니다.
RUN docker-php-ext-install redis
오류 메시지를 읽으면 추가 할 수있는 대상으로 redis가 포함되어 있지 않다는 것을 알 수 있습니다.
Step 4/6 : RUN docker-php-ext-install mcrypt pdo_mysql redis
---> Running in 6a2e232a0958
error: /usr/src/php/ext/redis does not exist
usage: /usr/local/bin/docker-php-ext-install [-jN] ext-name [ext-name ...]
ie: /usr/local/bin/docker-php-ext-install gd mysqli
/usr/local/bin/docker-php-ext-install pdo pdo_mysql
/usr/local/bin/docker-php-ext-install -j5 gd mbstring mysqli pdo pdo_mysql shmop
if custom ./configure arguments are necessary, see docker-php-ext-configure
Possible values for ext-name:
bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mcrypt mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap sockets spl standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zip
ERROR: Service 'app' failed to build: The command '/bin/sh -c docker-php-ext-install mcrypt pdo_mysql redis' returned a non-zero code: 1
거기서, 구글 선생에게 물어 보면, Stackoverflow 에 How to install php-redis extension using the official PHP Docker image approach? 라고 하는 딱 기사를 발견했다. 그러나 다양한 방법이있었습니다.
해결책
몇 가지 방법을 시도하고 가장 간단하게, 이해하기 쉬운 방법은 다음 Dockerfile이었습니다. 여분의 곳도 들어 있지만 (웃음)
php redis extention을 복제하고 docker-php-ext-install에 추가하면 컴파일, 설치 및 구성 파일을 내보낼 수 있습니다. 이것만으로 갈 수 있다고는, 좀처럼 신경이 쓰이네요.
Dockerfile
FROM php:7-fpm
RUN apt-get update \
&& apt-get install -y libmcrypt-dev mysql-client \
&& apt-get install -y zip unzip git \
&& apt-get install -y vim
RUN git clone -b php7 https://github.com/phpredis/phpredis.git /usr/src/php/ext/redis
RUN docker-php-ext-install mcrypt pdo_mysql session json mbstring redis
RUN curl -sS https://getcomposer.org/installer | php \
&& mv composer.phar /usr/local/bin/composer
WORKDIR /var/www
감상
Docker 컨테이너를 빌드하려면 서버 구축과는 다른 노하우가 필요하네요. 토호호
Reference
이 문제에 관하여(PHP 공식 Docker 컨테이너에 redis exension을 추가하는 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MahoTakara/items/eeaf36a76e60e34ed9e8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)