First steps into Docker & Jenkinsfiles

When we decided a year ago to automate our continuous deployment process (previously releases were quick but manual), I had the chance to look at Docker. It was more accessible for Linux, not all features were working on Windows and the documentation was little, but we gave it a go.

I started to implement a continuous deployment solution based on Jenkins and Docker. Our applications are coded in C# and we wanted to limit the number of code changes. The first task I had to do is to find a way to “Dockerize” our console applications run by the Task Scheduler. There are more than one way to do so and I have written a post about it on my blog. If you are interested you can find more details on https://gmabile.wordpress.com/2018/02/02/dockerize-console-application-scheduled-tasks

We also moved from standard Jenkins projects to Pipelines. This allowed us to get all the build steps in the repository. We found that using the Shared Library was a big time saver. Our build steps can be centralised in a specific repository that all the projects will use. Once this main Jenkinsfile is created we just have to set our project related parameters in a small Jenkinsfile in each repositories.

You can find more details on how we implemented this Parameterized Jenkinsfile on my blog: https://gmabile.wordpress.com/2018/02/02/parameterized-jenkinsfile

With this we have a full Continuous Deployment solution. A merge in our Git repository will trigger the build on Jenkins and the project will be built, tested and pushed either to a Development or a Production environment depending on the branch.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s