Google is open sourcing a new project designed to analyze and compare container images. Google uses container-diff in its own work, and believes it can be useful for anyone building containerized software.
“Containers and the Dockerfile format help make customization of an application’s runtime environment more approachable and easier to understand. While this is a great advantage of using containers in software development, a major drawback is that it can be hard to visualize what changes in a container image will result from a change in the respective Dockerfile. This can lead to bloated images and make tracking down issues difficult,” Nick Kubala from Google’s container tools team wrote in a post.
According to Kubala, not being able to distinguish between container images can completely halt application development. “Imagine a scenario where a developer is working on an application, built on a runtime image maintained by a third-party. During development someone releases a new version of that base image with updated system packages. The developer rebuilds their application and picks up the latest version of the base image, and suddenly their application stops working; it depended on a previous version of one of the installed system packages, but which one?” he wrote.
Container-diff is able to distinguish between images by computing semantic diffs between images. It can figure out what data changed, and find differences in system packages, language-level packages, and files in a container image. It supports Docker image history, image file system, apt packages, pip packages, and npm packages.
In addition, it can analyze a single images, or on two images to compare. “The tool can help users better understand what is changing inside their images, and give them a better look at what their images contain,” according to its GitHub page.
Top 5 projects trending on GitHub this week
#1. Luxon: A library for JavaScript dates and times.
#2. Git flight rules: A guide for programmers using Git. It goes over what developers can do if things go wrong. Still trending from last week!
#3. Awesome: Awesome lists for things like platforms, programming languages, front end development, Big Data and computer science.
#4. SQL Operations Studio: Microsoft’s data management tool for working with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.
#5. Tensorflow: An open-source software library for machine intelligence.