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.