Many developers still believe that Docker is only for DevOps and “system guys.” Much of this is due to simple ignorance, as they are not aware of the many benefits of Docker when it comes to programming. The reality is that it helps make sure your app works the same on any machine, but it makes managing development teams and onboarding new members a lot easier.
How To Start Dockerizing?
To begin with, the change does not have to be radical, and it is not necessary to turn everything upside down, especially if you need to win little by little to “the cause” of the members of your team. It is unnecessary to go directly to deploy your applications in containers, and the first step is more straightforward: start putting our development environment in containers.
After all, our application will surely need a particular infrastructure to work, so our first step will be to declare our dependencies in a Docker Compose file, which is a YAML text file in which, with a simple instruction docker-compose up, we can have our infrastructure launched in containers and working.
Second Step: Dockerize The SDK
The second step would be to containerize the SDK and multi-stage images ready to build so that you can create and run with nothing but Docker installed. If we add to this, we can work with Visual Studio Code, which integrates perfectly with this way of working through development containers, where VS Code downloads and runs those containers so that the experience is practically the same as performing locally. The requirements are minimal to start working on any project.
This way, the whole team (and any new members) will work with the same framework version and dependencies simultaneously. What’s more, you can work with different work environments depending on each project, where you may use different versions of .NET in other applications (for example).
Since the alternative is to handle it as before, with virtual machines, Vagrants, and the like, the benefits of speed and required disk space are apparent. And if, for example, you have your open source project, it will be much easier for you to recruit and incorporate new people into the project.
And the icing on the cake is that all these infrastructure and environment settings are controlled with simple text files that can be versioned and under code control along with the application. With containers (Docker or not), you can do version control of the development infrastructure of the entire team.