箱のプログラミング日記。

えんじにあ奮闘記

Dockerコンテナでcdコマンドを使いたい

f:id:y_hakoiri:20191102134313j:plain

いつものように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"

参考

ttyとは? - Qiita

docker exec で cd する方法 - naughtLdyのメモ帳