🐛
Rails on docker composeをRubymine/VScodeでステップ実行する
対象者
- RubymineまたはVS Codeを使っているひと
- IDEからステップ実行でデバッグしたいひと
概要
以下の4ステップで説明してます
- デバッガを設定する
- docker-compose.ymlを修正する
- デバッガを起動してブレークポイントで止める
デバッガを設定する
Rubymineの場合
Rubymine右上の「Edit Configurations...」から設定する
左上「+」ボタンから「Ruby remote debug」を選び
- Remote host: localhost
- Remote port: 1234
- Remote root folder: 「リモートのプロジェクトのパス」
- Local port: 26162
- Local root folder: 「ローカルのプロジェクトのパス」
を入力する
OKで閉じる
VS Codeの場合
左サイドバーからDebugを選択して「create a launch.json file」でファイルを作成する
以下の情報で保存する
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "rdebug-ide",
"type": "Ruby",
"request": "attach",
"remoteHost": "localhost",
"remotePort": "1234",
"remoteWorkspaceRoot": "「リモートのプロジェクトのパス」",
"cwd": "${workspaceRoot}/「ローカルのプロジェクトのディレクトリ名」"
}
]
}
docker-compose.yml(rails sをしてる場所)を修正する
ステップ1:
bin/rails s -p 3000 -b 0.0.0.0"
を消して
bundle exec rdebug-ide --debug --host 0.0.0.0 --port 1234 --dispatcher-port 26162 -- bin/rails s -p 3000 -b '0.0.0.0'"
を追加する
ステップ2:
expose
と ports
に 1234
を追加
修正が終わったら、 dockerの再起動しましょう
$ bin/docker stop
$ bin/docker up -d
$ bin/docker ps # ちゃんと起動できたか確認
デバッガを起動してブレークポイントで止める
Rubymineの場合
Rubymine右上のDebugマークを押して起動します
あとは好きな場所にブレークポイントを設定して
ブラウザから任意のURLを叩く
例↓
すると止まります
VS Codeの場合
サイドメニューからDebugを選択して、️▶️を押して実行
あとは同上
注意
デバッガを起動しない通常開発に影響があるため、変更したdocker-compose.ymlはpushしないでください。
※dockerが起動したらrevertしてもいいかも。起動時以外はGemfileとdocker-compose.ymlは見てないので
補足
debaseにbetaバージョン指定しないとエラーが発生する事象があるためbetaバージョン指定でインストールしてます
Discussion