久しぶりに普通の技術ネタを一つ。
今、ElixirのPhoenixを使って開発をしています。PhoenixはRuby on Railsの弟分みたいな存在でRailsを使用したことある人なら学習コストが低めで開発出来ると思います。
そこでpryをdockerと併用して使う方法の説明になります。
Docker 起動
$ docker-compose run --service-ports app sh
説明するとappはPhoenixが起動しているコンテナでshコマンドでログインしています。肝となるのが--service-portsオプションでこれがないとHostのポートとマッピンが出来ません。portの設定はdocker-compose.ymlで設定してください。
Phoenix起動
$ iex -S mix phx.server
mix.exsファイルがあるディレクトリで以上のコマンドを実行することでREPLになります。
あとは、breakしたい箇所で以下のコードを実行します。
require IEx IEx.pry()
あとは、Allow? [Yn]みたにpryに接続していいか聞かれるのでyを入力すれば止まります。