Docker gd module for PHP 7

12,705

Solution 1

This will help you

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

Solution 2

maybe should try this

# 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

Solution 3

With PHP 7.2 I got the following error when trying the accepted/other answers:

E: Package 'libpng12-dev' has no installation candidate

This worked for me:

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

Note the change from libpng-dev12 to libpng-dev

Share:
12,705

Related videos on Youtube

ZeroByte
Author by

ZeroByte

Updated on July 01, 2022

Comments

  • ZeroByte
    ZeroByte almost 2 years

    I've got docker file, which is configured for Drupal 8, but after I fired up "docker-compose up", everything went smooth but in installation of Drupal it's showing me that "gd" module for PHP is not enabled.

    here is my 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
    

    I try this method: Error In PHP5 ..Unable to load dynamic library But no use

  • Felipe Francisco
    Felipe Francisco over 6 years
    Funny, this worked out for me but I had to add it to the entrypoint. It didn't work at all if I let it as a RUN command inside the Dockerfile...
  • chovy
    chovy almost 5 years
    E: Package 'libpng12-dev' has no installation candidate
  • Dinuka Salwathura
    Dinuka Salwathura about 4 years
    configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works. The command '/bin/sh -c 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' returned a non-zero code: 1
  • Dinuka Salwathura
    Dinuka Salwathura about 4 years
    E: Unable to locate package libfreetype6-dev E: Unable to locate package libjpeg62-turbo-dev E: Unable to locate package libpng12-dev
  • Jason Wheeler
    Jason Wheeler about 4 years
    @chovy try apt-get install libpng-dev