概要

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 installinstallと省略できます。

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のインストールをしなくて済むというのは、便利だと思いました。

しかし、コマンドを覚えておく必要があるので、それは少し面倒だと思っています。