如何将laravel dockerfile的php redis添加到kubernetes?
我正在将laravel部署到kubernetes,并希望拥有redis 实际上,我有一个用于nginx的Dockerfile,另一个用于php-fpm-alpine和所有kubernetes-yaml文件(带有tls、部署和服务的入口) 我希望将php redis添加到php fpm容器中,有什么想法吗? 这里是实际的php/Dockerfile如何将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/
#
# 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}