概要
Dockerを使って、PHPのパッケージを管理するためのComposerを利用する方法を紹介します。
方法
Dockerを使ってComposerを使うときは、Docker Hub にある公式のComposerのイメージを使います。
ちなみに、昔は公式でなかったらしく、検索すると公式になる前のイメージが、表示されることがありました。なので、公式のコンテナはcomposer
です。composer/composer
ではありません。
イメージは、pullしていなくても自動でダウンロードしてくれるので、ここではpullのコマンドを書きません。
そのコンテナを使ってComposerのコマンドを実行するときはこのようにします。
docker run --rm -it -v $PWD:/app -w /app composer composer install
composer install
はinstall
と省略できます。
docker run --rm -it -v $PWD:/app -w /app composer install
install以外にも、Composerのコマンドであれば、コマンドのcomposer
を省略して使えます。
-v $PWD:/app
のようにしているのは、composer.jsonやcomposer.lockをホストマシンの方へ保存するために必要です。今回は、$PWDでdocker runの実行場所を、コンテナの/appと同期しています。
-w /app
は、ワークディレクトリを/app
することで、composerコマンドの実行場所を設定しています。-vで指定したディレクトリを指定します。
これで、PHPをホストマシンにインストールすることなくComposerを扱うことができます。
さいごに
PHPを使った開発で全てをDockerで用意したいと考えているのですが、Composerのインストールをしなくて済むというのは、便利だと思いました。
しかし、コマンドを覚えておく必要があるので、それは少し面倒だと思っています。