In the near future I will start with my first Rails project as a team project. I read that some teams use virtualization tools like Vagrant and Docker to share a common development environment.
I was wondering what the developers at Thoughtbot use to share a development environment, Vagrant, Docker, none of the above?
We experimented with Vagrant, but the weight of the images and the slow development cycle when testing setup scripts ended up killing it each time.
We’ve recently started using Docker on some projects to share development environments and improve development-production parity. We’re also experimenting with Heroku’s Docker image to build slugs locally and push them directly to Heroku, bypassing the Heroku build network.
We’ve published some of our work with Docker on our blog:
Many of the steps in those posts are not specific to Rails or Haskell, so reading them should give you a good idea what developing with Docker is like.
If you see references to Fig, know that Fig has been superseded by Docker Compose.