Containerized build steps
A method includes receiving a build request containing build step instructions from a user. The build step instructions specify a usage of containers within memory hardware for building an output container. The containers include at least one private container having private contents and/or at least one public container having public contents. The method also includes authenticating the user initiating the build request and determining whether the user is authorized to access the private containers. When the user is authenticated and authorized to access the private containers, the method includes obtaining the containers specified by the build step instructions from the memory hardware, executing the build step instructions to build the output container while using the received containers, and outputting the built output container.
1 . A method comprising:
receiving, from a user device associated with a user, a build request comprising build step instructions comprising a series of build steps for building an output container and specifying a usage of a private container, wherein at least one build step of the series of build steps comprises a dependency constraint specifying a prior build step that must complete execution before commencing execution of the at least one build step;
determining that the user is authorized to access the private container;
based on determining that the user is authorized to access the private container, executing the build step instructions to build the output container; and
outputting the output container to a container system.
2 . The method of claim 1 , wherein each respective build step of the series of build steps comprises at least one of:
a container identifier; or
an environment field.
3 . The method of claim 2 , wherein the dependency constraint of the at least one build step further specifies the container identifier of the prior build step.
4 . The method of claim 1 , wherein each respective build step of the series of build steps comprises a status identifier indicating an execution status for the respective build step.
5 . The method of claim 1 , wherein executing the build step instructions uses one or more virtual machines.
6 . The method of claim 1 , wherein the built output container comprises a build step record comprising the series of build steps of the build step instructions and an order of execution of the series of build steps.
7 . The method of claim 6 , wherein the build step record further comprises start timestamps, each of the start timestamps corresponding to a start time when execution of a respective build step began.
8 . The method of claim 6 , wherein the build step record further comprises end timestamps, each of the end timestamps corresponding to an ending time when execution of a respective build step completed.
9 . The method of claim 1 , wherein the build step instructions further specify a usage of a public container.
10 . The method of claim 9 , wherein each build step of the series of build steps uses one of the private container or the public container.
11 . A system comprising:
data processing hardware; and
memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed cause the data processing hardware to:
receive, from a user device associated with a user, a build request comprising build step instructions comprising a series of build steps for building an output container and specifying a usage of a private container, wherein at least one build step of the series of build steps comprises a dependency constraint specifying a prior build step that must complete execution before commencing execution of the at least one build step;
determine whether the user is authorized to access the private container;
responsive to determining that the user is authorized to access the private container, execute the build step instructions to build the output container; and
output the output container to a container system.
12 . The system of claim 11 , wherein each respective build step of the series of build steps comprises at least one of:
a container identifier; or
an environment field.
13 . The system of claim 12 , wherein the dependency constraint of the at least one build step further specifies the container identifier of the prior build step.
14 . The system of claim 11 , wherein each respective build step of the series of build steps comprises a status identifier indicating an execution status for the respective build step.
15 . The system of claim 11 , wherein to execute the build step instructions, the instructions cause the data processing hardware to use one or more virtual machines.
16 . The system of claim 11 , wherein the output container comprises a build step record comprising the series of build steps of the build step instructions and an order of execution of the series of build steps.
17 . The system of claim 16 , wherein the build step record further comprises start timestamps, each of the start timestamps corresponding to a start time when execution of a respective build step began.
18 . The system of claim 16 , wherein the build step record further comprises end timestamps, each of the end timestamps corresponding to an ending time when execution of a respective build step completed.
19 . The system of claim 11 , wherein build step instructions further specify a usage of a public container.
20 . The system of claim 19 , wherein each build step of the series of build steps uses one of the private container or the public container.