Docker にて zip extension が見つからなくて composer が使えない時の対応

composer が使えない

Docker のコンテナ内にて composer を使った時、
下記 zip extension が見つからないのでパッケージのダウンロードできないというようなエラーが出た。

$ bin/composer install

Failed to download dasprid/enum from dist: The zip extension and unzip/7z commands are both missing, skipping.
Your command-line PHP is using multiple ini files. Run `php --ini` to show them.
    Now trying to download from source

zip extension のインストール

docker-compose.yaml

Dockerfile

  • タグ fpm 使用
FROM php:fpm

RUN apt-get update
RUN apt-get -y install libzip-dev
RUN docker-php-ext-install zip

ビルドし直す

$ docker-compose up --build

zip extension があるか確認

zip があれば今回のエラーは解消される。

index.php で調べる時

<?php
phpinfo();
?>

zip
-------------------------------
| Zip             | enabled   |
| Zip version     | 1.19.2    |
| Libzip version  | 1.5.1     |
-------------------------------

cli で調べる時

$ php -ini

zip

Zip => enabled
Zip version => 1.19.2
Libzip version => 1.5.1