要旨
- pry-remoteを使ってhostからdocker container内のremote debuggingを実現したい
- docker-compose.ymlにて9876番portをexposeする記述をし、ここで指定されている通りに作業しても、
DRb::DRbConnError: connection closed
になってしまう。
具体的状況
- Gemfile
ruby
1 group :development, :test do 2 gem 'pry-rails' 3 gem 'pry-doc' 4 gem 'pry-stack_explorer' 5 gem 'pry-remote'
- docker-compose.yml
admin_web: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/app ports: - "3000:3000" - "9876:9876" links: - admin_db admin_db: image: mysql:5.6.30 ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: root
- version
Rails 5.0.0
ruby 2.3.0
- 手順
docker container内のappのコード内にbinding.pry_remote
を書いて、
処理を走らせると、順調にconsoleに[pry-remote] Waiting for client on druby://127.0.0.1:9876
が表示されるのですが、
そこからbundle exec pry-remote
でdebugを始めようとすると、以下のようなerrorになってしまいます。
bundler: failed to load command: pry-remote (/Users/takapy/micoly-admin/vendor/bundle/ruby/2.3.0/bin/pry-remote) DRb::DRbConnError: connection closed /Users/takapy/.rbenv/versions/2.3.0/lib/ruby/2.3.0/drb/drb.rb:579:in `load' /Users/takapy/.rbenv/versions/2.3.0/lib/ruby/2.3.0/drb/drb.rb:641:in `recv_reply' /Users/takapy/.rbenv/versions/2.3.0/lib/ruby/2.3.0/drb/drb.rb:941:in `recv_reply' /Users/takapy/.rbenv/versions/2.3.0/lib/ruby/2.3.0/drb/drb.rb:1254:in `send_message' /Users/takapy/.rbenv/versions/2.3.0/lib/ruby/2.3.0/drb/drb.rb:1142:in `block (2 levels) in method_missing' /Users/takapy/.rbenv/versions/2.3.0/lib/ruby/2.3.0/drb/drb.rb:1229:in `open' /Users/takapy/.rbenv/versions/2.3.0/lib/ruby/2.3.0/drb/drb.rb:1141:in `block in method_missing' /Users/takapy/.rbenv/versions/2.3.0/lib/ruby/2.3.0/drb/drb.rb:1160:in `with_friend' /Users/takapy/.rbenv/versions/2.3.0/lib/ruby/2.3.0/drb/drb.rb:1140:in `method_missing' /Users/takapy/micoly-admin/vendor/bundle/ruby/2.3.0/gems/pry-remote-0.1.8/lib/pry-remote.rb:289:in `run' /Users/takapy/micoly-admin/vendor/bundle/ruby/2.3.0/gems/pry-remote-0.1.8/bin/pry-remote:4:in `<top (required)>' /Users/takapy/micoly-admin/vendor/bundle/ruby/2.3.0/bin/pry-remote:23:in `load' /Users/takapy/micoly-admin/vendor/bundle/ruby/2.3.0/bin/pry-remote:23:in `<top (required)>'
原因の手ががりなどありましたらよろしくお願いします、、
あなたの回答
tips
プレビュー