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.

  • Set Go Glide in Docker
  • Play framework auto-loading in docker container
  • Efficient development flow for Cloud Foundry
  • Does the Docker RPM require additional dependencies?
  • Docker development workflow for compiled components in a docker-compose setup
  • How to mimic a “Docker containers behind reverse-proxy or load balancer setup” during development
  • Docker nginx, which nginx setup is most efficient?
  • Bluemix Dev Ops: Building a project with private git submodules
  • docker-compose up container start ordering
  • Pass command line arguments to Docker with Ansible
  • Is it possible to let ansible print each statement?
  • unable to connect to dockerized mysql container locally
  • 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.