content_image/761870.jpg content_image/761869.jpg
One or more build steps 

<img src='content_image/761870.jpg'>

Image with Java and Maven included that is used for this build step 

Arguments given to the builder container that will trigger Maven to compile, create, and push a container image via the jib-maven-plugin 

The directory /workspace  is shared and mounted for every build step. 

It’s also interesting to take a brief look under the hood to learn how the Knative build Operator  performs the build. 

<img src='content_image/761869.jpg'>

Figure 25-3 shows how a custom Build resource is transformed into plain Kubernetes resources. A Build becomes a Pod with the build steps translated into a chain of Init Containers  that are called one after another. The first init containers are implicitly created. In our example, there is one for the initializing credentials used for interact‐ ing with external repositories and a second init container for checking out the source from GitHub. The remaining init container are just the given steps with the declared builder images. When all init containers are finished, the primary container is just a no-operation that does nothing, so that the Pod stops after the initialization steps. 

## Build templates 

Example 25-3 contains only a single build step, but your typical build consists of mul‐ tiple steps. The BuildTemplate custom resource can be used to reuse the same steps for similar builds. 

