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.

  • How to reduce time required by docker image to install dependencies?
  • Error when running SparkApp from docker container against Spark running in another container
  • Set Go Glide in Docker
  • Docker application deployment DEV vs TEST
  • Moving from Vagrant to Vagrant with Docker
  • Set values on image build for a Docker container
  • Use --build-arg value in Dockerfile FROM parameter
  • Dockerfile versioning best practice
  • How can I run docker-compose up as shell script by Jenkins
  • Dockerfile contains a python script that writes to an output file, but the output file is not being created on the container
  • Docker as the effective Rails development environment
  • docker info command doesn't show anything in ec2 Instance
  • 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: https://www.youtube.com/watch?v=txY9XahFpjI.

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