The Shippable Blog

Docker in Continuous Integration: Part 3

A Docker image registry service makes it easy for developers to store, manage, distribute and deploy Docker images. Use a registry service to control the storing of your images, fully own your images distribution pipeline and integrate image storage and distribution tightly into your in-house development work flow.

This blog covers "Pushing a Docker image to a registry of your choice" scenario in the Docker in Continuous Integration (CI) series. We'll go over a simple example and look at advanced scenarios of using Docker images within CI and Continuous Delivery (CD) Pipelines.

Docker in Continuous Integration: Part 2

This blog explains "Build your own Docker image" scenario in the Docker in Continuous Integration (CI) series. The three scenarios covered in this series are:

  1. Use an existing Docker image
  2. Build your own Docker image
  3. Push a Docker image to a registry of your choice

We'll go over the reasons to build your own Docker image, steps to do so and an example to follow along.

Docker in Continuous Integration: Part 1

This blog series covers three Docker in Continuous Integration (CI) scenarios. A CI process combined with immutable Docker images expedites delivering software changes. Shippable makes it easy for you to use Docker images in your CI process, without a separate DevOps tool or code. The three scenarios covered in this series are:

  1. Use an existing Docker image
  2. Build your own Docker image
  3. Push a Docker image to a registry of your choice

In this blog, I'll cover the first scenario.

REST API best practice: One Database call per Route

Shippable has been on a roll for the last 8 months. We scaled our team by 3X, had the best-ever release of our continuous integration and delivery platform on February 29, and we’ve continued launching 10+ features every month since then. 

As we scaled our development team, every new developer joined us with preconceived ideas about how software is developed. Unfortunately, software development is pretty inefficient at most places, and this is one of the main reasons we started Shippable. We at Shippable do things differently. We focus on shipping code faster and faster, and we hold some principles very close to our heart. 

One of our strongest beliefs is in pure REST APIs. This means we follow the cardinal rule: thou shalt not make multiple calls to DB objects from inside a single RESTable route. So when any new developer joins our team, his first question is : Why do we call our API from within our API?

Customize environments for different branches of a Continuous Integration project

There have been several requests on our support forum on how to customize environments to specific branches while running Continuous Integration (CI) builds for a repository that has multiple branches. In this tutorial, I'll go over a common scenario and review the multiple ways we can configure branch-specific actions during the CI build. 

The scenario I use for this tutorial is, to pull a Docker image in the CI process and upon completion, use different tags for the branches when pushing the Docker image to Docker Hub. The Docker tags should be customized to the specific branch where the CI was processed and should include the build number. The final results of successful CI process tagging different branches looks as shown.