project
|- docker-compose.yml
`- docker
|- web
`- nodejs
とすると、例えば web
コマンドに対してコマンドを実行させたい時は
docker-compose run --rm web php artisan migrate
docker-compose run --rm nodejs npm install
とするわけで、これは素のコマンド
php artisan migrate
npm install
よりちょっと長い。
毎回打つのは面倒なので、下記の構成にしたところいい感じ。Dockerを挟んでいるということを感じない。
project
|- docker-compose.yml
|- bin
| |- php
| |- npm
| `- node
`- docker
|- web
`- nodejs
例えば bin/php
の中身はこんな感じ
#!/bin/bash
cmd="docker-compose run --rm web php $@"
echo $cmd
$cmd
これで、 bin/php artisan migrate
で各種コマンドを実行できる。
Railsの bin/rails
みたいなイメージです。
他にいいやり方があればコメント頂けると嬉しいです。