[PHP] Dockerイメージに1行でcomposerをインストールする方法とその解説

スポンサーリンク

DockerfileなどでPHPのcomposerをインストールしたいとき、1行で書く方法メモ。

以下でできます。

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

コマンドの各箇所解説。

  • -s/–silent プログレスやエラーメッセージなどを表示しない。
  • -S/–show-error サイレントモードのときでもエラーだけは表示する。
  • php –の–は標準入力からスクリプトを受け取るという意味。
    • curlはデフォルトでダウンロード内容を標準出力に出すので|によってphpコマンドの標準入力に渡しています。
  • –install-dir composerのインストール先。PATHの通った場所を指定します。
  • –filename composerのファイル名。デフォルトはcomposer.pharなのでcomposerに変えます。

php:fpm-alpineイメージでの実行例。

# コンテナ実行をしてシェルへ
~ $ docker run -it --rm php:fpm-alpine ash

# コンテナ内でcomposerをインストール
/var/www/html # curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer
Downloading...

Composer (version 2.5.1) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

# 確認
/var/www/html # composer --version
Composer version 2.5.1 2022-12-22 15:33:54

wget版

wget -nv https://getcomposer.org/installer -O - | php -- --install-dir=/usr/local/bin --filename=composer

ちなみになんですが、Dockerでcomposerをインストールする方法で検索すると

COPY --from=composer /usr/bin/composer /usr/bin/composer

こういうのがベストプラクティスとして紹介されているページがあるんですが、Docker Hubのレートリミットが起こりうる状況下の場合–from composerでcomposerイメージのPullが1回起きちゃうので自分はgetcomposer.orgからファイルでインストールするほうが個人的には好きです。

スポンサーリンク
スポンサーリンク
DockerPHPRecord
シェアする
フォローする

コメント