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からファイルでインストールするほうが個人的には好きです。
コメント