docker php7.2-fpm无法安装imap模块

时间:2018-04-16 10:12:08

标签: php docker imap

我在尝试让imap使用我的docker-compose时遇到了问题。

这是我的php dockerfile的样子。

FROM php:7.2-fpm

RUN apt-get update && \
  apt-get install -y \
    curl \
    libmcrypt-dev \
    unzip \
    git 

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install- 
dir=/usr/local/bin --filename=composer
RUN composer --version

# Set timezone to UTC
RUN rm /etc/localtime
RUN ln -s /usr/share/zoneinfo/UTC /etc/localtime
RUN "date"

RUN apt-get -y install libmagickwand-dev --no-install-recommends \
    && pecl install imagick \
    && docker-php-ext-enable imagick \
    && rm -r /var/lib/apt/lists/*

RUN /usr/local/bin/docker-php-ext-install pdo pdo_mysql

ADD ./scripts/entry.sh /root/init.sh

WORKDIR /var/www/insight

但我一直收到错误

Call to undefined function imap_open()

我一直在尝试很多不同的方式让imap工作,但似乎没有什么对我有用。我需要继续使用php7.2所以降级到php5不是我的选择。

我理想的结果是保持当前php版本的fpm并找到一个很好的解决方案让imap使用当前的dockerfile。

添加

Docker-php-ext-install imap 
dockerfile中的

似乎不起作用并导致以下错误:

configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.

3 个答案:

答案 0 :(得分:2)

要在Docker中使用带有PHP的imap模块,您必须像这样配置扩展

docker-php-ext-configure imap --with-kerberos --with-imap-ssl

您可以在我的project

之一中看到Dockerfile的示例

答案 1 :(得分:1)

2020年在Linux Alpine上针对PHP 7.4和PHP 8实际使用

RUN apk add imap-dev krb5-dev
RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
    && docker-php-ext-install imap \
    && docker-php-ext-enable imap

答案 2 :(得分:0)

通过使用

解决了
RUN apt update && apt install -y libc-client-dev libkrb5-dev && rm -r /var/lib/apt/

RUN docker-php-ext-configure imap --with-kerberos --with-imap-ssl && docker-php-ext-install imap

位于https://stackoverflow.com/a/52314180/2311074