Docker 上の PHP 環境に Composer コンテナでパッケージをインストールする
https://hub.docker.com/r/composer/composer/
リンク先に書いてあることが全てなんですが、それだとあんまりなのでちょっと説明しておきます。
ざっくりいうと、PHP 環境のコンテナとは別に Composer の入ったコンテナを用意して、
docker run --rm
でスポット的に動かします。
1. イメージを pull する
$ docker pull composer/composer
これを書いている時点で、Hub に push されているイメージのバージョンは 1.2.0 でした。
$ docker run --rm composer/composer --version Composer version 1.2.0 2016-07-19 01:28:52
最新のものがほしければ、ソースからビルドすればよいです。
2. composer.json
を書く
適当に欲しいものを書いてください。
{ "require": { "smarty/smarty": "~3.1", "ezyang/htmlpurifier": "*" } }
3. 実行する
$ docker run --rm -v $(pwd):/app composer/composer install Loading composer repositories with package information Updating dependencies (including require-dev) - Installing smarty/smarty (v3.1.31) Downloading: 100% - Installing ezyang/htmlpurifier (v4.9.3) Downloading: 100% Writing lock file Generating autoload files
4. docker run
がめんどくさい人は
PATH
が通ったところにシェルスクリプトを置きましょう。
$ sudo sh -c "cat >/usr/local/bin/composer" <<'EOF' #!/bin/sh export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin echo "Current working directory: '"$(pwd)"'" docker run --rm -v $(pwd):/app -v ~/.ssh:/root/.ssh composer/composer $@ EOF $ sudo chmod +x /usr/local/bin/composer $ composer --version Current working directory: '/home/ikasamak/work/docker-lamp/html/selfphp' Composer version 1.2.0 2016-07-19 01:28:52