いつものようにDockerコンテナを立ち上げるだけでなくコンテナに入った状態でcdコマンドを使用したいなと思い調べたのでメモ。
OCI runtime exec failed
普通にいつも通りdocker-compose exec コンテナ名
にコマンドをつなげる形でdocker-compose exec コンテナ名 cd hoge
とやってもうまくいかなかった。
$ docker-compose exec container-name cd hoge OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"cd\": executable file not found in $PATH": unknown failed to resize tty, using default size
エラー内容を見てみるとfailed to resize tty
とある。
TTYとはコマンドの実行を対話的に処理してくれるインターフェースのことらしい。
解決:bashを使う
bashコマンドを使うといけました。
$ docker-compose exec app /bin/bash -c "cd asp && bundle install"