【问题标题】:PHP Dockerfile with php-memcached not working带有 php-memcached 的 PHP Dockerfile 不起作用
【发布时间】:2020-11-22 17:57:55
【问题描述】:

我无法使用 PHP-Memcached 扩展构建任何图像。他们都给我一条错误消息,我尝试了多少次都没有帮助。我什至找不到任何包含 memcached 的 PHP Dockerfile 并且它可以工作。即使是 PHP docker 页面的主要 page 也有带有 PHP Memcached 解决方案的 Dockerfile,它也无法正常工作。

FROM php:5.6-cli

RUN apt-get update && apt-get install -y libmemcached-dev zlib1g-dev \

&& pecl install memcached-2.2.0 \

&& docker-php-ext-enable memcached

这是我最后一次尝试的代码

FROM php:7.4-fpm

ADD php.ini /usr/local/etc/php/conf.d/php.ini

RUN docker-php-ext-install pdo pdo_mysql

# for mysqli if you want
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

RUN printf "deb http://archive.debian.org/debian/ jessie main\ndeb-src http://archive.debian.org/debian/ jessie main\ndeb http://security.debian.org jessie/updates main\ndeb-src http://security.debian.org jessie/updates main" > /etc/apt/sources.list

RUN apt-get update
RUN apt-get install -y libz-dev libmemcached-dev && \
    pecl install memcached && \
    docker-php-ext-enable memcached

谁知道这件事?谢谢,建议

【问题讨论】:

  • 不确定stackoverflow.com/questions/40894385/… 是否有帮助,它似乎是从您所在的位置开始的。
  • @NigelRen 是的,这很有帮助。你拯救了我的一天真的很感激。老实说,我找到了该链接,但没有运行 Dockerfile,因为它使用的不是我的图像。但现在我无论如何都会使用那个图像。 php:7.4-fpm docker image 没有解决方案
  • @Marcinek 是的,但需要使用另一个图像来构建。使用php:7.4-fpm 但没有解决方案。我认为我的问题的答案隐藏在参数--no-cache --update
  • @Marcinek 看看下面我的回答。有解决办法

标签: php docker dockerfile memcached


【解决方案1】:

看起来我终于找到了解决问题的方法,并且与 /etc/apt/source.list 相关

deb http://ftp.us.debian.org/debian buster main
deb http://ftp.us.debian.org/debian buster-updates main

然后只需在您的 Dockerfile 中添加此 COPY ./sources.list /etc/apt/sourcee.list 行,它就会起作用

FROM php:7.2-fpm

COPY ./sources.list /etc/apt/sourcee.list

【讨论】:

    【解决方案2】:

    我已将 memcached 和 phm-memcached 分开。第一个是容器,第二个是安装在 Dockerfile for PHP 上。 我的 docker-compose 文件:

    version: '3'
    services:
        # PHP
        php:
            build:
                context: docker/php7-fpm
            volumes:
            // etc...
    
        memcached:
            image: memcached:latest
            hostname: memcached
            networks:
                - stack
    
    

    在我的 PHP Dockerfile 中:

    FROM php:7-4-fpm
    
    // install dependencies...
    
    # php-memcached
    RUN set -ex \
        && rm -rf /var/lib/apt/lists/* \
        && MEMCACHED="`mktemp -d`" \
        && curl -skL https://github.com/php-memcached-dev/php-memcached/archive/master.tar.gz | tar zxf - --strip-components 1 -C $MEMCACHED \
        && docker-php-ext-configure $MEMCACHED \
        && docker-php-ext-install $MEMCACHED \
        && rm -rf $MEMCACHED
    

    有了这个,在我的 symfony 应用程序中,我可以将数据存储在 memcached 中。

    【讨论】:

      猜你喜欢
      • 2014-02-08
      • 2014-12-30
      • 1970-01-01
      • 2017-04-23
      • 2015-11-20
      • 2018-08-25
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多