Posted at

Docker,Supervisord,Puma,Railsで作った環境にpryを使えるようにする方法

More than 1 year has passed since last update.

Docker環境でpryを使えるための手順を紹介します。

まず自分の環境です。

alpine 3.6にrailsを入れてる

supervisord経由でrailsプロセスを起動してる
rack serverはpumaを使ってる
railsバージョン5.1.3、rubyバージョン2.4.2


pryが使えるようにするための手順


docker-compose.yaml

 ports:

- 3000:3000
#pry用port
- 3005:3005

※通常のrailsポート以外でpry専用のポートを開けておきます。

alias ccc="docker exec -i  `docker ps | grep container_name | awk '{print $1}'` bash -lc 'cat tmp/pids/server.pid | xargs kill -9 ; bundle exec rails s -b 0.0.0.0 -p 3005'"

※container_nameは自分の環境に合わせてコンテナーが識別できる名前に変更してください。

ccc実行

aliasで指定したコマンドを実行して

http://localhost:3005 にアクセスするとpryが使えると思います。


stdin_openを利用してpryを使える方法

https://qiita.com/kosukeKK/items/f7111247f22050aeedad

の記事を見ると


docker-compose.yaml

web:

tty: true
stdin_open: true

にする方法もあるそうですが、今回は以下の理由で採用しませんでした。


  1. pumaで起動すると標準出力でログが出てなくてまともに動きませんでした。

    (webrickだと正常に動きました。)


  2. docker-compose up -> pryモードに入り ctrl + cとかで抜けた時、操作ミスでdocker-composeまで抜けてしまう場合があった