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.

  • running vs2015 in docker image
  • Docker multiple environments
  • Optimising cargo build times in docker
  • Vagrant or Docker for environment development
  • Why do we need run update before run install in Dockerfile?
  • Conditional fig configuration for dev needs
  • How to configure the directory where to store each database?
  • How do you deliver your application using the concept of containers (Docker containers)
  • Install swagger-ui error
  • How to reduce time required by docker image to install dependencies?
  • example marathon json deployment file when using glusterfs volume driver
  • Workflow for Python with Docker + IDE for non-web applications
  • 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.