gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:51:03 27 4
gpt4 key购买 nike

我正在将 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"]

和 nginx/Dockerfile
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默认的/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

就那么简单!

您可以了解更多 installing PHP extensions来自官方 PHP docker 文档(在 php-redisinstalling PECL extensions 的情况下)。

所以在你的情况下, 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

关于php - 如何将laravel的dockerfile的php-redis添加到kubernetes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54226604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com