适用于PHP 7的Docker gd模块

Zer*_*yte 5 php drupal drupal-8 docker docker-compose

我已经为Drupal 8配置了docker文件,但在我启动了"docker-compose up"后,一切顺利,但是在安装Drupal时,它显示我没有启用PHP的"gd"模块.

这是我的Dockerfile:

FROM php:7-fpm
# Install modules
RUN apt-get update

RUN apt-get install -y software-properties-common

RUN DEBIAN_FRONTEND="noninteractive" add-apt-repository ppa:ondrej/php

RUN apt-get update

RUN apt-get install -y vim curl wget build-essential software-properties-common git ca-certificates

RUN apt-get install -y \
    libbz2-dev \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libpng12-dev \
    libxpm-dev \
    libvpx-dev \
    libmcrypt-dev \
    libmemcached-dev \
    && \

apt-get clean && \
    rm -rf /var/lib/apt/lists/* && \

docker-php-ext-configure gd \
        --with-freetype-dir=/usr/lib/x86_64-linux-gnu/ \
        --with-jpeg-dir=/usr/lib/x86_64-linux-gnu/ \
        --with-xpm-dir=/usr/lib/x86_64-linux-gnu/ \
        --with-vpx-dir=/usr/lib/x86_64-linux-gnu/ \
    && \

docker-php-ext-install \
        bcmath \
        bz2 \
        exif \
        ftp \
        gd \
        gettext \
        mbstring \
        mcrypt \
        mysqli \
        opcache \
        pdo_mysql \
        shmop \
        sockets \
        sysvmsg \
        sysvsem \
        sysvshm \
        zip \
    && \

    pecl install apcu memcached && \
    echo 'extension = apcu.so' > /usr/local/etc/php/conf.d/apcu.ini && \
    echo 'extension = memcached.so' > /usr/local/etc/php/conf.d/memcached.ini
Run Code Online (Sandbox Code Playgroud)

我尝试这种方法:错误在PHP5 ..无法加载动态库 但没有用

小智 15

这会对你有所帮助

FROM php:7.0-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng12-dev \
    && docker-php-ext-install -j$(nproc) iconv mcrypt \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd
Run Code Online (Sandbox Code Playgroud)


小智 6

也许应该试试这个

# Install GD
RUN apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng12-dev
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
RUN docker-php-ext-install gd
Run Code Online (Sandbox Code Playgroud)


Phi*_*ber 6

使用 PHP 7.2 时,我在尝试接受的/其他答案时出现以下错误:

E: 包“libpng12-dev”没有安装候选

这对我有用:

FROM php:7.2-fpm
RUN apt update \
    && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) intl pdo_mysql bcmath mbstring exif gd
Run Code Online (Sandbox Code Playgroud)

注意从libpng-dev12libpng-dev