Rails のコンテナにアタッチするために docker-comose.yml に tty と stdin_open を追加する。
web:
build: .
tty: true
stdin_open: true
command: bash -c "rm -f /tmp/pids/server.pid && bundle exec foreman start -f Procfile.dev"
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
`docker-comose up -d` でコンテナを起動して、以下のコマンドでコンテナにアタッチする。
docker attach $(docker-compose ps -q web)
コンテナからデタッチする際に ctrl + c を実行すると、コンテナまで終了してしまう。Ctrl + Q や Ctrl + P を実行するとデタッチができるようだが、VSCodeだとできなかった。
docker の設定でキーを変換することで対応。Macローカルで以下を実行して設定ファイルを開く。
vim ~/.docker/config.json
設定を追加。
{
...
"detachKeys": "ctrl-e"
}
ctrl-e でデタッチすることができた。