Continuous Integration with containers

This post is part of The Containerization Chronicles, a series of posts about Containerization. In them, I write about my experiments and what I’ve learned on Containerization of applications. The contents of this post might make more sense if you read the previous posts in this series.

Now that we have some containers in place for development, we can integrate with a CI server. I chose Scrutinizer CI because of the code analysis it makes, the fact that it is also a CI server it’s a plus. However, as a CI, it has some limitations, which I will talk about later on when integrating with Heroku, so we will most likely move to another CI engine later in the future while keeping Scrutinizer only for the code analysis but, for now, this is all we need.

To set up the CI, we will:

  1. Containerize an environment to run the tests in the CI
  2. Configure Scrutinizer
  3. Add the scrutinizer badges to the
  4. Integrate Scrutinizer with GitHub

If you want to jump right into the code, this is the tag on GitHub.

Continue reading “Continuous Integration with containers”


The Containerization Chronicles

While working on the 18th post of The Software Architecture Chronicles, which is about implementing a proof of concept, I picked up the Symfony demo app and started refactoring away…

I started by cleaning up the project a bit and adding some functionality I like to have for better DevEx (development experience), but after some 20 commits I got annoyed with it and decided to try to get the environment as best as I could.

More or less at the same time, at work, we are currently moving to containers, and Kubernetes, and this would be a nice project to start diving into that.

So here it is, “The Containerization Chronicles”, a series of posts where I will be describing my experiments and learnings about the containers world.

I will be using the same repository as I will use for The Software Architecture Chronicles, so you will be able to access all the code there.

Posts in The Containerization Chronicles:

  1. The Containerization Chronicles
  2. Cleaning up the demo project
  3. Containerize development
  4. Continuous Integration with containers (using Scrutinizer)
  5. Integration with CodeCov
  6. Deployments with containers (using Heroku)
  7. Add an Nginx container
  8. Replace the Nginx container for httpd
  9. Replace the httpd container for httpd+mod_php
  10. Make a benchmark on the previous 3 configurations
  11. Add a persistence container
  12. Start diving into Kubernetes… No idea what I’m gonna do here…