IP Library › Granted Patent US 12,086,579
Granted Patent B2
US 12,086,579 · App. 17/900,237 · Granted Sep 10, 2024

Deriving a container from a package set

Inventors: Leigh Griffin (Waterford, IE); Pierre-Yves Chibon (Paris la Defense, FR)
Assignee: Red Hat, Inc.
G06F8/63G06F9/44505
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 12,086,579
App. No.
17/900,237
Granted
Sep 10, 2024
Kind
B2
Abstract

Deriving a container from a package set is disclosed. Package set metadata that identifies a plurality of packages to be included in a container image based on a package set is accessed. A container configuration file referencing the plurality of packages is generated based at least in part on the package set metadata. The container configuration file includes one or more commands complying with a container builder syntax that are implementable by a container builder to generate a container image including the plurality of packages. The container configuration file is stored in a memory of a computer system.

Claims (53)

1. A method comprising:

accessing, by a computer system comprising one or more computing devices, package set metadata that identifies a plurality of packages in a package set to be included in a container image, wherein the package set metadata comprises tag metadata associated with the plurality of packages, wherein each package of the plurality of packages is tagged with a label of the package set metadata identifying that the package is included in the package set;

generating, by the computer system, a container configuration file referencing the plurality of packages based at least in part on the package set metadata, the container configuration file comprising one or more commands complying with a container builder syntax that are implementable by a container builder to generate the container image comprising the plurality of packages; and

storing, by the computer system, the container configuration file in a memory of the computer system.

2. The method of claim 1 , wherein generating the container configuration file comprises:

identifying one or more dependencies of the plurality of packages;

performing combinatorial analysis of the one or more dependencies of the plurality of packages to remove duplicate dependencies among the plurality of packages, wherein the duplicate dependencies are not included in the container configuration file; and

ordering the plurality of packages in the container configuration file based at least in part on the combinatorial analysis of the one or more dependencies.

3. The method of claim 1 , wherein the container configuration file comprises a plurality of layers descriptive of a functional grouping of the plurality of packages in the container image, and wherein generating the container configuration file comprises assigning each of the plurality of packages to one of the plurality of layers.

4. The method of claim 1 , wherein generating the container configuration file comprises:

determining, by the computer system, a base operating system associated with the package set; and

generating, by the computer system, a base operating system command referencing the base operating system in the container configuration file.

5. The method of claim 4 , wherein the base operating system command comprises a base layer of the container configuration file.

6. The method of claim 1 , wherein generating the container configuration file comprises:

determining, by the computer system, one or more operating system customizations associated with the package set; and

generating, by the computer system, an operating system customization command referencing the one or more operating system customizations in the container configuration file.

7. The method of claim 6 , wherein the operating system customization command comprises a second layer of the container configuration file.

8. The method of claim 1 , further comprising:

transmitting, by the computer system, the container configuration file from a first computing device to a second computing device.

9. The method of claim 1 , further comprising:

receiving, by the computer system, an updated container configuration file; and

updating, by the computer system, one or more of the plurality of packages in the container image based at least in part on the updated container configuration file.

10. The method of claim 1 , further comprising:

implementing, by the computer system, the container configuration file to generate the container image on the computer system; and

instantiating, by the computer system, the container image to operate a container based at least in part on the container image.

11. The method of claim 1 , wherein the container configuration file is a dockerfile.

12. The method of claim 1 , wherein the method further comprises, prior to accessing the package set metadata, determining, by the computer system, that a package set update event has occurred; and, in response to determining that the package set update event has occurred, accessing the package set metadata that identifies the plurality of packages to be included in the container image.

13. The method of claim 1 , further comprising:

accessing, by the computer system, package customization metadata that identifies one or more package customizations associated with the plurality of packages to be included in the container image;

wherein the container configuration file further identifies the one or more package customizations associated with the plurality of packages.

14. A computing system comprising:

one or more computing devices to:

access package set metadata that identifies a plurality of packages in a package set to be included in a container image, wherein the package set metadata comprises tag metadata associated with the plurality of packages, wherein each package of the plurality of packages is tagged with a label of the package set metadata identifying that the package is included in the package set;

generate a container configuration file referencing the plurality of packages based at least in part on the package set metadata, the container configuration file comprising one or more commands complying with a container builder syntax that are implementable by a container builder to generate the container image comprising the plurality of packages; and

store the container configuration file in a memory of the computing system.

15. The computing system of claim 14 , wherein generating the container configuration file comprises:

identifying one or more dependencies of the plurality of packages;

performing combinatorial analysis of the one or more dependencies of the plurality of packages to remove duplicate dependencies among the plurality of packages, wherein the duplicate dependencies are not included in the container configuration file; and

ordering the plurality of packages in the container configuration file based at least in part on the combinatorial analysis of the one or more dependencies.

16. The computing system of claim 14 , wherein generating the container configuration file comprises:

determining a base operating system associated with the package set; and

generating a base operating system command that reproducibly identifies the base operating system in the container configuration file.

17. The computing system of claim 14 , wherein generating the container configuration file comprises:

determining, by the computing system, one or more operating system customizations associated with the package set; and

generating, by the computing system, an operating system customization command that reproducibly identifies the one or more operating system customizations in the container configuration file.

18. A non-transitory computer-readable storage medium that includes executable instructions to cause one or more processor devices to:

access package set metadata that identifies a plurality of packages in a package set to be included in a container image, wherein the package set metadata comprises tag metadata associated with the plurality of packages, wherein each package of the plurality of packages is tagged with a label of the package set metadata identifying that the package is included in the package set;

generate a container configuration file referencing the plurality of packages based at least in part on the package set metadata, the container configuration file comprising one or more commands complying with a container builder syntax that are implementable by a container builder to generate the container image comprising the plurality of packages; and

store the container configuration file in a memory of a computing system.

19. The non-transitory computer-readable storage medium of claim 18 , wherein generating the container configuration file comprises:

identifying one or more dependencies of the plurality of packages;

performing combinatorial analysis of the one or more dependencies of the plurality of packages to remove duplicate dependencies among the plurality of packages, wherein the duplicate dependencies are not included in the container configuration file; and

ordering the plurality of packages in the container configuration file based at least in part on the combinatorial analysis of the one or more dependencies.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2022
From: GRIFFIN, LEIGH; CHIBON, PIERRE-YVES
To: RED HAT, INC.
Reel/Frame 060955/0267 →
Continuity (1)
Related Publication 20240069883A1 · Feb 29, 2024