I’ve been excited about docker idea for everything, from production to development. It’s definitely ok for production, continuous integration and deployment rollouts, but sucks for development and here is why.
Development process should be as fast and responsive as possible. Responsiveness and robust feedback are critical for development. REPL should give results immediate, because human waiting for computer is really sucks!
And when you right in the middle of development process and feedback is slow because of docker this is not what makes you happy, it’s stopping your read-evaluate-print loop and adding distraction factors to your workflow.
You can argue that dockerized development platform has benefits to be quickly redistributed for new devs and to be consistent with production environment. And definitely you’re right.
Tradeoff is following: on one hand is same environment as in production and quick up with necessary pars of app, and on another is slow feedback, spatially when running your tests.
It’s up to you to decide what’s more important for your team.
What I’m going to try is to make simple plain RoR development as usual without docker, to have speedy tests, responsive environment, and after making new features just push my git repo, then dedicated box should make new staging release and deploy it to staging server.