はじめに
非常に不便に感じていた、Dockerコンテナ内で矢印キー(またはCtrl+PとかCtrl+N)が使えない現象。
ようやく解決できたので、解決手順の備忘録残しときます。
ごめんよDocker。僕が悪かった…。
(※ 根本的な解決策ではないと思います。もし原因が分かる方いたらご指摘いただけるとありがたいです。)
起こっていた現象
$ docker-compose exec #{container} shでコンテナ内に入ると、
↑矢印キーが^[[A、↓矢印キーが^[[Bなどと判断され、ショートカットできない。
#{container}はサービス名(コンテナ名)。
Docker学習開始時からこの現象に悩まされ、渋々コンテナ外部からrailsコマンド等の操作をしていました…。
解決方法
$ docker-compose exec #{container} /bin/bashとすることで解決。
なぜshではダメで、/bin/bashだといけるのかはよく分からないんですが、
こちらのサイトをヒントに、ターミナル上で$ echo $SHELLを打ったところ、
$ echo $SHELL
/bin/bash
と表示されたので、/bin/bashを試しました。
何となくですが、bashとshそれぞれのシェルスクリプトの働きの違いによるものなのかな…と感じています。
もう少し調べてみる必要がありますね(汗)