Dockerに慣れるためにとりあえず現在Vagrantでやってることを置き換えようと思ったが、ちょっとハマったのでメモ。
やりたかったこと
ホストOSからコンテナのrailsディレクトリでbin/bundle installしたかったのだが、docker execでディレクトリを変える手段が分からなかった。
結論
以下のようになった。
docker exec -t CONTAINER_NAME bash -c 'cd /path/to/app && bin/bundle install --path .bundle'
-tオプションがないと出力のカラーリングをしてくれなかった。
ちなみに
docker exec -t CONTAINER_NAME bash -c cd /path/to/app && bin/bundle install --path .bundle
とかだとbin/bundleがホスト側で実行されてしまう。
execに渡すコマンドは1つだけのよう。
あとcdはbashの組み込みコマンドなので単にcdでは使えない。
あとこれはあくまでちょっと試し書きしたい時にDockerを使いたいという趣旨であって、当然デプロイなどを考慮した用途ではない。念のため。