久しぶりに普通の技術ネタを一つ。
今、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
を入力すれば止まります。