Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将laravel dockerfile的php redis添加到kubernetes?_Php_Laravel_Docker_Kubernetes - Fatal编程技术网

如何将laravel dockerfile的php redis添加到kubernetes?

如何将laravel dockerfile的php redis添加到kubernetes?,php,laravel,docker,kubernetes,Php,Laravel,Docker,Kubernetes,我正在将laravel部署到kubernetes,并希望拥有redis 实际上,我有一个用于nginx的Dockerfile,另一个用于php-fpm-alpine和所有kubernetes-yaml文件(带有tls、部署和服务的入口) 我希望将php redis添加到php fpm容器中,有什么想法吗? 这里是实际的php/Dockerfile # # PHP Dependencies # FROM composer:1 as vendor COPY database/ database/

我正在将laravel部署到kubernetes,并希望拥有redis

实际上,我有一个用于nginx的Dockerfile,另一个用于php-fpm-alpine和所有kubernetes-yaml文件(带有tls、部署和服务的入口)

我希望将php redis添加到php fpm容器中,有什么想法吗? 这里是实际的php/Dockerfile

#
# PHP Dependencies
#
FROM composer:1 as vendor

COPY database/ database/
COPY composer.json composer.json
COPY composer.lock composer.lock

RUN composer install \
    --ignore-platform-reqs \
    --no-interaction \
    --no-plugins \
    --no-scripts \
    --prefer-dist

#
# Application
#
FROM php:fpm-alpine
RUN apk add --no-cache --virtual .build-deps \
        $PHPIZE_DEPS \
        curl \
        libtool \
        libxml2-dev \
    && apk add --no-cache \
        curl \
        git \
        mysql-client \
    && docker-php-ext-install \
        mbstring \
        pdo \
        pdo_mysql \
        tokenizer \
        bcmath \
        opcache \
        xml \
    && apk del -f .build-deps \
    && docker-php-ext-enable pdo_mysql

WORKDIR /var/www/html

COPY . /var/www/html
COPY --from=vendor /app/vendor/ /var/www/html/vendor/
COPY .env.example /var/www/html/.env

RUN chown -R root:www-data . 

EXPOSE 9000

CMD ["php-fpm"]
FROM nginx:stable-alpine

ADD default.conf /etc/nginx/conf.d/default.conf

COPY public /var/www/html/public
WORKDIR /var/www/html/public
以及nginx/Dockerfile

#
# PHP Dependencies
#
FROM composer:1 as vendor

COPY database/ database/
COPY composer.json composer.json
COPY composer.lock composer.lock

RUN composer install \
    --ignore-platform-reqs \
    --no-interaction \
    --no-plugins \
    --no-scripts \
    --prefer-dist

#
# Application
#
FROM php:fpm-alpine
RUN apk add --no-cache --virtual .build-deps \
        $PHPIZE_DEPS \
        curl \
        libtool \
        libxml2-dev \
    && apk add --no-cache \
        curl \
        git \
        mysql-client \
    && docker-php-ext-install \
        mbstring \
        pdo \
        pdo_mysql \
        tokenizer \
        bcmath \
        opcache \
        xml \
    && apk del -f .build-deps \
    && docker-php-ext-enable pdo_mysql

WORKDIR /var/www/html

COPY . /var/www/html
COPY --from=vendor /app/vendor/ /var/www/html/vendor/
COPY .env.example /var/www/html/.env

RUN chown -R root:www-data . 

EXPOSE 9000

CMD ["php-fpm"]
FROM nginx:stable-alpine

ADD default.conf /etc/nginx/conf.d/default.conf

COPY public /var/www/html/public
WORKDIR /var/www/html/public
最后是nginx default/conf.d

server {
    listen 80;

    index index.php index.html;
    root /var/www/html/public;

    client_max_body_size 32M;

    location / {
        try_files $uri /index.php?$args;
    }

    location ~ \.php$ {
    fastcgi_pass   php:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
    }
}

由于您使用的是官方PHP docker映像,因此可以通过PECL安装PHP redis扩展:

RUN pecl install redis \
    && docker-php-ext-enable redis
就这么简单

您可以从官方的PHP docker文档(在
PHP redis
,)了解更多信息

因此,在您的情况下,
RUN
命令可以如下所示:

# Your PHP Dockerfile
RUN apk add --no-cache --virtual .build-deps \
        $PHPIZE_DEPS \
        curl \
        libtool \
        libxml2-dev \
    && apk add --no-cache \
        curl \
        git \
        mysql-client \
    && pecl install redis \     # install redis extension via PECL
    && docker-php-ext-install \
        mbstring \
        pdo \
        pdo_mysql \
        tokenizer \
        bcmath \
        opcache \
        xml \
    && apk del -f .build-deps \
    && docker-php-ext-enable \
       pdo_mysql \
       redis                    # don't forget to enable redis extension

alpine php 7.3.5的更新

RUN apk add --no-cache pcre-dev $PHPIZE_DEPS \
        && pecl install redis \
        && docker-php-ext-enable redis.so
如果使用基于Alpine的映像,则在安装PECL之前需要额外一行代码:
apk--no cache add pcre dev${PHPIZE_DEPS}