🐘

[PHP][composer] install を4分から45秒に高速化する例

2020/10/03に公開

published_at: 2019-04-16 07:11


(調整前) 4m8.477s
(調整後) 45s

の改善に成功。

環境

  • macOS Mojave 10.14.4
  • PHP 7
  • Composer version 1.8.5 2019-04-09 17:46:47
  • Docker version 18.09.2, build 6247962
  • docker-compose version 1.23.2, build 1110ad01

ポイント

  • docker コンテナ内でなく ホストOS側で composer install を済ませる
  • 高速化モジュール(に限らないと思われる)は packagist のリポジトリ取得先を packagist.jp に変える前に入れる

Dockerfile で言うと

https://github.com/sogaoh/LaravelPractice/blob/master/docker/php/Dockerfile#L27-L29

対応手順

  • (1) composer.json・composer.lock のあるインストールに移動
    • cd /path/to/dir[composer.json exists]
  • (2) ホストOSに composer のインストール
    • curl -sS https://getcomposer.org/installer | php
    • sudo mv composer.phar /usr/local/bin/composer
  • (3) 高速化モジュールのインストール
    • composer global require hirak/prestissimo
  • (4) packagist リポジトリ 参照先の変更
    • composer config -g repositories.packagist composer http://packagist.jp
  • (5) ホストOS で composer install
    • 時間計測するなら time composer install
  • (6) docker-compose コマンド等でコンテナ起動

情報

Note

  • config のリセット
    • composer config -g --unset repositories.packagist
  • config の確認
    • composer config --list

Discussion