Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

enadabuzaid's avatar

php composer not work via docker

I create Docker container for project but when try to install or update composer I get error

 docker-compose run --rm composer update 

Get this :

  Problem 1
    - spatie/laravel-medialibrary[9.0.0, ..., v9.x-dev] require ext-exif * -> it is missing from your system. Install or enable PHP's exif extension.
    - Root composer.json requires spatie/laravel-medialibrary ^9.0.0 -> satisfiable by spatie/laravel-medialibrary[9.0.0, ..., v9.x-dev].

To enable extensions, verify that they are enabled in your .ini files:
    - /usr/local/etc/php/php-cli.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-bz2.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
    - /usr/local/etc/php/conf.d/docker-php-ext-zip.ini

#Dockerfile :

FROM php:8.1.7-fpm

RUN apt-get update && apt-get install -y  \
    libfreetype6-dev \
    libjpeg-dev \
    libpng-dev \
    libwebp-dev \
    --no-install-recommends \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install pdo_mysql -j$(nproc) gd

#Docker-compose

.
.
.
    composer:
        image: composer:latest
        container_name: composer
        volumes:
            - ./:/var/www
        working_dir: /var/www/
0 likes
4 replies
Sinnbeck's avatar

That docker file does not seem to be used for the composer container. Maybe try running it on your php container instead

enadabuzaid's avatar

@Sinnbeck did you mean like this

FROM php:8.1.7-fpm

RUN apt-get update && apt-get install -y  \
    libfreetype6-dev \
    libjpeg-dev \
    libpng-dev \
    libwebp-dev \
    --no-install-recommends \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install pdo_mysql -j$(nproc) gd


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

and remove from docker-compose.yml

Sinnbeck's avatar

@enadabuzaid Yeah. Or add a docker file to the composer service that installs those missing modules

Please or to participate in this conversation.