This is optimal for new app development, but might not work as well if you have a large, old, crufty, and less-tested codebase. The upshot of this approach is that it allows me very fast turnaround time for testing, and equally fast turnaround time for in-browser development. I believe it's just a limitation of Docker at present, and a change in either the way Docker handles networking, or in the way the ruby-debug-ide command handles transmitting debugging information would help fix it. Unfortunately binding ports puts them 'in use', and so you can't create a 'listen only' connection from the host/RubyMine to a specific container port. I spent a day or so trying to get the remote debugger to work, but the core problem appears to be that (the way ruby-debug works) you need to allow the debugging process (in the docker container) to 'reach out' to the host's port to connect and send debugging information. Plus it allows me to run all the cool tools completely in the development environment, and not pollute my host system at all. I still can't debug using RubyMine, but I don't miss it anywhere near as much as I thought I would, especially with web consoles being available. (The 192.168/* might not be necessary in all cases, but some folks have run into problems that require it.) To config/environments/development.rb in order for it to allow a web debug console when exceptions happen in development. I then mostly make my changes in RubyMine, ignoring messages about not having various gems installed, etc., and focus on keeping my tests running cleanly as I develop.įor handling a console when I get exceptions, I need to add: config.web_console.whitelisted_ips = bundle exec rake db:migrate is only when I've made DB changes or the first time.Īt this point I typically have a Rails instance that I can browse to at localhost:3000, and the RubyMine project is 'synchronized' to the Docker image.bundle install is only when I've made Gemfile changes or the first time.I launch docker daemonized, mounting a local directory into the docker image, with an exposed port 3000, running a never-ending command. ![]() That's important to get fast turnaround time in development. First off, my Rails project has a Guardfile set up that launches rails ( guard-rails gem) and also manages running my tests whenever I make changes ( guard-minitest gem). I don't develop under Windows, but here's how I handle this problem under Mac OS X.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |