Is it reasonable to containerize development environment with Docker?

In my job I needed to checkout and debug an old project, which turned out to be hell due the fact I had to build my development environment from a scratch to satisfy the desired dependencies for the desired workflow. Project configuration has been based on various eclipse plugins like m2e-wtp. Regardless of trying four different versions of Eclipse, I always encountered some compatibility issues or cryptic warnings of missing builder, and ultimately had to fall back on external server deployment pattern.

I wondered, why we wouldn’t persist the development environment itself as a Docker container to avoid this kind of time wasting? As far as I know, Docker is mainly used to encapsulate and ship the application with it’s runtime environment as a complete, modular and isolated unit. But is it common or reasonable to containerize the development environment itself? I could see huge benefits from enabling the version control on development environment to keep the team in sync.

  • Does the Docker RPM require additional dependencies?
  • Set Go Glide in Docker
  • Docker application deployment DEV vs TEST
  • Vagrant and / or Docker workflow with full OS X filesystem integration for seamless local feel?
  • Docker setting up
  • How to quickly switch between docker environments for development?
  • Isolate PHP applications with Docker
  • Docker example for frontend and backend application
  • Docker ports work in localhost but not with public ip
  • Docker Compose vs. Dockerfile - which is better?
  • Caching Jar dependencies for Maven-based Docker builds
  • Remove Docker images from Nexus Repository Manager OSS 3.0.1-01
  • 2 Solutions collect form web for “Is it reasonable to containerize development environment with Docker?”

    I think containerizing the build and/or test environment can have many advantages, however developers depend on many tools. There is a risk of ending up with a very bloated container.

    Only my opinion though.

    It’s reasonable, depending on your situation, of course.
    This session from JavaOne last year gives a good overview of options, pros and cons:

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.