IP Library › Granted Patent US 11,379,207
Granted Patent B2
US 11,379,207 · App. 16/999,120 · Granted Jul 5, 2022

Rapid bug identification in container images

Inventors: Sebastian Scheinkman (Petah Tikva, IL); Or Shoval (Netanya, IL)
Assignee: Red Hat, Inc.
G06F8/63G06F8/30G06F8/658G06F8/71G06F9/44505G06F9/451G06F9/45545G06F16/24573G06F21/56
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,379,207
App. No.
16/999,120
Granted
Jul 5, 2022
Kind
B2
Abstract

Bugs in container images can be rapidly identified. For example, a computing device can receive first metadata about a first container image that includes a first version of a piece of software and second metadata about a second container image that includes a second version of the piece of software. The computing device can obtain first source code from a first location indicated in the first metadata and second source code from a second location indicated in the second metadata. The computing device can determine a difference between the first container image and the second container image by comparing the first source code to the second source code. The computing device can generate an output for display indicating the difference between the first container image and the second container image.

Claims (58)

1. A system comprising:

a processor; and

a memory including instructions that are executable by the processor for causing the processor to:

receive first metadata about a first container image that includes a first version of a piece of software, the first metadata indicating a first location and a first commit identifier corresponding to first source code from which the first version of the piece of software was built in generating the first container image, wherein the first commit identifier is a first commit hash;

obtain the first source code from the first location based on the first commit identifier;

receive second metadata about a second container image that includes a second version of the piece of software, the second metadata indicating a second location and a second commit identifier corresponding to second source code from which the second version of the piece of software was built in generating the second container image, wherein the second commit identifier is a second commit hash;

obtain the second source code from the second location based on the second commit identifier;

determine a difference between the first container image and the second container image by comparing the first source code to the second source code; and

generate an output for display indicating the difference between the first container image and the second container image.

2. The system of claim 1 , wherein:

the difference is a first difference;

the first container image includes a first filesystem and the second container image includes a second filesystem; and

the memory further includes instructions executable by the processor for causing the processor to determine a second difference between the first container image and the second container image by comparing the first filesystem to the second filesystem.

3. The system of claim 1 , wherein the difference is a first difference, and the memory further includes instructions executable by the processor for causing the processor to determine a second difference between the first container image and the second container image by comparing a first commit history associated with the first container image and a second commit history associated with the second container image.

4. The system of claim 1 , wherein the memory further includes instructions executable by the processor for causing the processor to:

receive a user input subsequent to generating the output, the user input including one or more adjustments to the second container image; and

generate a third container image based on the user input and contents of the second container image, the third container image being configured to serve as a rebuild of the second container image that includes the one or more adjustments.

5. The system of claim 1 , wherein the memory further includes instructions executable by the processor for causing the processor to:

determine a software patch based on the difference between the first container image and the second container image, the software patch being configured to correct a bug associated with the second container image; and

generate a third container image based on the second container image and the software patch, the third container image being separate from the first container image and the second container image.

6. The system of claim 1 , wherein the memory further includes instructions executable by the processor for causing the processor to generate a graphical user interface for display on a display device, the graphical user interface including a tree view representing relationships between the first container image and the second container image.

7. The system of claim 1 , wherein the memory further includes instructions executable by the processor for causing the processor to merge the first container image and the second container image into a single container image based on receiving a merge command.

8. The system of claim 1 , the difference is a first difference, and wherein the memory further includes instructions executable by the processor for causing the processor to determine a second difference between the first container image and the second container image by performing a text search on the first container image and the second container image, the difference being a textual string.

9. The system of claim 1 , wherein the first commit identifier uniquely identifies a commit associated with the first source code, and wherein the second commit identifier uniquely identifies another commit associated with the second source code.

10. A method comprising:

receiving, by a processor, first metadata about a first container image that includes a first version of a piece of software, the first metadata indicating a first location and a first commit identifier corresponding to first source code from which the first version of the piece of software was built in generating the first container image, wherein the first commit identifier is a first commit hash;

obtaining, by the processor, the first source code from the first location based on the first commit identifier;

receiving, by the processor, second metadata about a second container image that includes a second version of the piece of software, the second metadata indicating a second location and a second commit identifier corresponding to second source code from which the second version of the piece of software was built in generating the second container image, wherein the second commit identifier is a second commit hash;

obtaining, by the processor, the second source code from the second location based on the second commit identifier;

determining, by the processor, a difference between the first container image and the second container image by comparing the first source code to the second source code; and

generating, by the processor, an output for display indicating the difference between the first container image and the second container image.

11. The method of claim 10 , wherein:

the difference is a first difference;

the first container image includes a first filesystem and the second container image includes a second filesystem; and

the method further comprising determining, by the processor, a second difference between the first container image and the second container image by comparing the first filesystem to the second filesystem.

12. The method of claim 10 , wherein the difference is a first difference, and further comprising determining a second difference between the first container image and the second container image by comparing a first commit history associated with the first container image and a second commit history associated with the second container image.

13. The method of claim 10 , further comprising:

receiving, by the processor, a user input subsequent to generating the output, the user input including one or more adjustments to the second container image; and

generating, by the processor, a third container image based on the user input and contents of the second container image, the third container image being configured to serve as a rebuild of the second container image that includes the one or more adjustments.

14. The method of claim 10 , further comprising:

determining, by the processor, a software patch based on the difference between the first container image and the second container image, the software patch being configured to correct a bug associated with the second container image; and

generating, by the processor, a third container image based on the second container image and the software patch, the third container image being separate from the first container image and the second container image.

15. The method of claim 10 , further comprising generating, by the processor, a graphical user interface for display on a display device, the graphical user interface including a tree view representing relationships between the first container image and the second container image.

16. The method of claim 10 , wherein the difference is a first difference, further comprising determining a second difference between the first container image and the second container image by performing a text search on the first container image and the second container image, the difference being a textual string.

17. A non-transitory computer-readable medium comprising program code that is executable by a processor for causing the processor to:

receive first metadata about a first container image that includes a first version of a piece of software, the first metadata indicating a first location and a first commit identifier corresponding to first source code from which the first version of the piece of software was built in generating the first container image, wherein the first commit identifier is a first commit hash;

obtain the first source code from the first location based on the first commit identifier;

receive second metadata about a second container image that includes a second version of the piece of software, the second metadata indicating a second location and a second commit identifier corresponding to second source code from which the second version of the piece of software was built in generating the second container image, wherein the second commit identifier is a second commit hash;

obtain the second source code from the second location based on the second commit identifier;

determine a difference between the first container image and the second container image by comparing the first source code to the second source code; and

generate an output for display indicating the difference between the first container image and the second container image.

18. The non-transitory computer-readable medium of claim 17 , wherein the difference is a first difference, the first container image includes a first filesystem and the second container image includes a second filesystem, and the non-transitory computer-readable medium further comprises program code that is executable by the processor for causing the processor to determine a second difference between the first container image and the second container image by comparing the first filesystem to the second filesystem.

19. The non-transitory computer-readable medium of claim 17 , further comprising program code that is executable by the processor for causing the processor to:

receive a user input subsequent to generating the output, the user input including one or more adjustments to the second container image; and

generate a third container image based on the user input and contents of the second container image, the third container image being configured to serve as a rebuild of the second container image that includes the one or more adjustments.

20. The non-transitory computer-readable medium of claim 17 , further comprising program code that is executable by the processor for causing the processor to:

determine a software patch based on the difference between the first container image and the second container image, the software patch being configured to correct a bug associated with the second container image; and

generate a third container image based on the second container image and the software patch, the third container image being separate from the first container image and the second container image.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 28, 2020
From: SCHEINKMAN, SEBASTIAN; SHOVAL, OR
To: RED HAT, INC.
Reel/Frame 054188/0634 →
Continuity (1)
Related Publication 20220058011A1 · Feb 24, 2022
Cited By (1)
US 12,353,872