なんでできへんのや
環境
$docker -v Docker version 18.06.1-ce, build e68fc7a $docker-compose -v docker-compose version 1.22.0, build f46880f
やりたいこと
docker-composeが起動している上で以下のようにするとdocker内でコマンドを実行できる。
docker-compose exec サービス名 コマンド
でそのコマンドの中で*(アスタリスク)を使うことって多いと思うんだよね。ワイルドカードみたいに
しかし実行すると予想通りの結果にならない。
$ docker-compose exec php-fpm ls /tmp/*.json ls: cannot access '/tmp/*.json': No such file or directory
確実にjsonファイルが有るはずなのに表示できない。。。
原因
docker-composeで実行されるのはシェルではなくコマンド?
「ワイルドカード*の機能はシェル/bin/shの機能なので使えない」ってこと
解決
shするしかない
docker-compose exec php-fpm sh -c 'tail -f /tmp/*.json'
でいけた