Chapter 6. Custom Builder
6.1. Overview
Custom build is designed to fill the gap that was created when everybody jumped into creating Docker images. Still there is a requirement to produce individual artifacts (packages, jars, wars, installable zips, base images etc.) This is where Custom build is the perfect match to fill in that gap. Additionally Custom build allows implementing any extended build process for example, CI/CD flow that runs unit or integration tests. The limit here is just the imagination of the custom builder image author.
To fully utilize the power of Custom build one needs to be understand how to create a builder image that will be capable of building desired objects.
6.2. Custom Builder Image
The builder image upon invocation receives following environment variables with the information needed to proceed with the build:
Table 6.1. Custom Builder Environment Variables
| Variable name | Description |
|---|---|
|
| This variable specifies the entire serialized Build object. |
|
| This variable specifies the URL to a repository with sources to build. |
|
| This variable specifies the path to the Docker socket, if exposing the Docker socket was enabled on BuildConfig. |
6.3. Custom Builder Workflow
Although the custom builder image author has a great flexibility in defining the build process on its own, still they should follow a few required steps necessary to seamlessly run a build inside of OpenShift. The required steps for a custom builder image are following:
- Read the Build definition, which contains all the necessary information about input parameters for the build.
- Run the build process.
- If your build produces image, push it to the Build's output location if the output location is defined. Other output locations can be passed with environment variable for now.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.