Unicontainers
AssigneeSRI International
InventorHassen Saidi
Life of this patent
Estimating the term…
Abstract
In general, this disclosure describes techniques for building an application designed to run on a given infrastructure as a container. For example, a unicontainer as described herein may represent a smallest-size, statically-linked binary that is the most optimal implementation of a container for executing an application. In some examples, a computing system builds this container by identifying unused or unneeded functionalities from dependencies for the application, for instance where such functionalities are provided by a target infrastructure for the container.
Claims20
A computing system for generating container images, the computing system comprising:
- a build module;
- and
- a computation engine comprising at least one processor and configured to execute the build module to:
- receive a recipe file for an application build of an application to be deployed as a container image and an indication of a target infrastructure of a plurality of target infrastructures, wherein the recipe file specifies one or more dependencies of the application,
- obtain, based at least on required functions of a first dependency of the one or more dependencies to support the application that are not provided by the target infrastructure, a first version of the first dependency that is configured to provide the required functions but that is not configured to provide at least one other function provided by the target infrastructure, and
- build a container image comprising the application, wherein to build the container image the build module is configured to statically link the first version of the first dependency into the application to optimize the application build of the application.
A computing system for generating container images, the computing system comprising:
- a registry;
- a registry file for the registry;
- a build module;
- and
- a computation engine comprising at least one processor and configured to execute the build module to:
- receive a recipe file for an application build of an application to be deployed as a container image, wherein the recipe file specifies one or more dependencies of the application,
- obtain, based at least on required functions of a first dependency of the one or more dependencies to support the application, a first version of the first dependency that is configured to provide the required functions but that is not configured to provide at least one other function provided by a second version of the first dependency,
- build a container image comprising the application, wherein to build the container image the build module is configured to statically link the first version of the first dependency into the application to optimize the application build of the application,
- store the container image to the registry, and
- modify the registry file for the registry to indicate the container image includes the first version of the first dependency, wherein the registry file is used to resolve conflicts associated with different versions of the one or more dependencies of the application.
A method for generating container images, comprising:
- receiving, with a computing system, a recipe file for an application build of an application to be deployed as a container image, wherein the recipe file specifies one or more dependencies of the application;
- obtaining, with the computing system, based at least on required functions of a first dependency of the one or more dependencies to support the application, a first version of the first dependency that is configured to provide the required function but that is not configured to provide at least one other function provided by a second version of the first dependency;
- building, with the computing system, a container image comprising the application, wherein to build the container image the computing system is configured to statically link the first version of the first dependency into the application to optimize the application build of the application;
- storing the container image to a registry;
- and
- modifying a registry file for the registry to indicate the container image includes the first version of the first dependency, wherein the registry file is used to resolve conflicts associated with different versions of the one or more dependencies of the application.
A method for generating container images, comprising:
- receiving, with a computing system, a recipe file for an application build of an application to be deployed as a container image and an indication of a target infrastructure of a plurality of target infrastructures, wherein the recipe file specifies one or more dependencies of the application;
- obtaining, with the computing system, based at least on required functions of a first dependency of the one or more dependencies to support the application that are not provided by the target infrastructure, a first version of the first dependency that is configured to provide the required function but that is not configured to provide at least one other function provided by the target infrastructure;
- and
- building, with the computing system, a container image comprising the application, wherein to build the container image the computing system is configured to statically link the first version of the first dependency into the application to optimize the application build of the application.
A non-transitory computer-readable storage medium comprising instructions for causing a computing system to perform operations comprising:
- receiving a recipe file for an application build of an application to be deployed as a container image and an indication of a target infrastructure of a plurality of target infrastructures, wherein the recipe file specifies one or more dependencies of the application;
- obtaining, based at least on required functions of a first dependency of the one or more dependencies to support the application that are not provided by the target infrastructure, a first version of the first dependency that is configured to provide the required function but that is not configured to provide at least one other function provided by the target infrastructure;
- and
- building a container image comprising the application, wherein to build the container image the computing system is configured to statically link the first version of the first dependency into the application to optimize the application build of the application.
A non-transitory computer-readable storage medium comprising instructions for causing a computing system to perform operations comprising:
- receiving a recipe file for an application build of an application to be deployed as a container image, wherein the recipe file specifies one or more dependencies of the application;
- obtaining, based at least on required functions of a first dependency of the one or more dependencies to support the application, a first version of the first dependency that is configured to provide the required function but that is not configured to provide at least one other function provided by a second version of the first dependency;
- building a container image comprising the application, wherein to build the container image the computing system is configured to statically link the first version of the first dependency into the application to optimize the application build of the application;
- storing the container image to a registry;
- and
- modifying a registry file for the registry to indicate the container image includes the first version of the first dependency, wherein the registry file is used to resolve conflicts associated with different versions of the one or more dependencies of the application.
Dependencies are inferred from the claim text.