どうも、プログラムを描けば書くほどByebugって便利やなぁーと感じているものです。
さてそんな便利なByebugですが、Docker環境で使うとうまく動作しません。そこで今回はDocker環境でByebugを使うための手順について簡単にまとめておきたいと思います。
Docker環境でByebugを使う方法
Docker環境でByebugを使うための事前準備
手順1
docker-compose.ymlに設定を記述
まずはdocker-compose.ymlに以下の内容を記述します。
docker-compose.yml
services:
web:
stdin_open: true
tty: true
MEMO
この記述でByebugを使うコンテナから出力されるデータをターミナルに表示する準備ができます。
手順2
コンテナを再起動
docker-compose.ymlの内容をコンテナに反映させる必要があるので、コンテナを再起動してください。もしわからなければ、再ビルドしても構いません。
Byebugの使い方
手順1
$docker-comopse up でコンテナを起動する
まずはByebugを使うためのコンテナを起動します。
手順2
$docker ps でbyebugを使うコンテナ名を確認する
続いてdocker psにて立ち上がっているコンテナ名を確認します。
手順3
$docker attach <コンテナ名> でアタッチする
docker attach で先ほど調べたコンテナ名を入力して、アタッチします。これでByebugが使用できるはずです。通常通り処理をとめたいところに「byebug」を記述してみて、動作を確認してみてください。
手順4
control P + Q でデタッチする
byebugを使うのをやめるときは、controlとPとQの3つのボタンを同時押しします。するとbyebugから抜け出せるはずです。
注意
ここでデタッチを正しく行わないと後処理が面倒になるので注意してください。
手順5
$docker-compose downでコンテナを停止する
動作ができなくなっていると思うので、docker-compose downにてコンテナを停止して、再度起動してください。
注意
コンテナを再起動する前に挿入したbyebugの記述を消すのを忘れずに!