Build Configuration
In this section, we will provide information on the Build Configuration
.
Build configuration is used to create and push docker images in the container registry of your application. You will provide all the docker related information to build and push docker images on the Build Configuration
page.
Only one docker image can be created for multi-git repository applications as explained in the Git Repository section.
For build configuration, you must provide information in the sections as given below:
![](https://docs.devtron.ai/~gitbook/image?url=https%3A%2F%2Fdevtron-public-asset.s3.us-east-2.amazonaws.com%2Fimages%2Fcreating-application%2Fdocker-build-configuration%2Fbuild-configuration-latest1.jpg&width=768&dpr=4&quality=100&sign=1ae965&sv=1)
Store Container Image
The following fields are provided on the Store Container Image section:
Field | Description |
---|---|
Container Registry | Select the container registry from the drop-down list or you can click Add Container Registry. This registry will be used to store docker images. |
Container Repository | Enter the name of your container repository, preferably in the format |
If you are using docker hub account, you need to enter the repository name along with your username. For example - If my username is kartik579 and repo name is devtron-trial, then enter kartik579/devtron-trial instead of only devtron-trial.
![](https://docs.devtron.ai/~gitbook/image?url=https%3A%2F%2Fdevtron-public-asset.s3.us-east-2.amazonaws.com%2Fimages%2Fcreating-application%2Fdocker-build-configuration%2Fdocker-configuration-docker-hub.jpg&width=768&dpr=4&quality=100&sign=c349c939&sv=1)
Build the Container Image
In order to deploy the application, we must build the container images to configure a fully operational container environment.
You can choose one of the following options to build your container image:
I have a Dockerfile
Create Dockerfile
Build without Dockerfile
Build Docker Image when you have a Dockerfile
A Dockerfile
is a text document that contains all the commands which you can call on the command line to build an image.
![](https://docs.devtron.ai/~gitbook/image?url=https%3A%2F%2Fdevtron-public-asset.s3.us-east-2.amazonaws.com%2Fimages%2Fcreating-application%2Fdocker-build-configuration%2Fi-have-a-dockerfile.png&width=768&dpr=4&quality=100&sign=bf4e7f34&sv=1)
Field | Description |
---|---|
Select repository containing Dockerfile | Select the Git checkout path of your repository. This repository is the same which you defined on the Git Repository section. |
Dockerfile Path (Relative) | Enter a relative file path where your docker file is located in Git repository. Ensure that the dockerfile is available on this path. This is a mandatory field. |
Build Docker Image by creating Dockerfile
With the option Create Dockerfile, you can create a Dockerfile
from the available templates. You can edit any selected Dockerfile template as per your build configuration requirements.
![](https://docs.devtron.ai/~gitbook/image?url=https%3A%2F%2Fdevtron-public-asset.s3.us-east-2.amazonaws.com%2Fimages%2Fcreating-application%2Fdocker-build-configuration%2Fcreate-dockerfile.jpg&width=768&dpr=4&quality=100&sign=9158c10e&sv=1)
Field | Description |
---|---|
Language | Select the programming language (e.g., |
Framework | Select the framework (e.g., |
Build Docker Image without Dockerfile
With the option Build without Dockerfile, you can use Buildpacks to automatically build the image for your preferred language and framework.
Field | Description |
---|---|
Select repository containing code | Select your code repository. This repository is the same which you defined on the Git Repository section. |
Project Path (Relative) | In case of monorepo, specify the path of the project from your Git repository. |
Language | Select the programming language (e.g., |
Version | Select a language version from the drop-down list. If you do not find the version you need, then you can update the language version in |
Select a builder | A builder is an image that contains a set of buildpacks which provide your app's dependencies, a stack, and the OS layer for your app image. Select a buildpack provider from the following options:
|
Build Env Arguments
You can add Key/Value pair by clicking Add argument.
Field | Description |
---|---|
Key | Define the key parameter as per your selected language and builder. E.g., By default |
Value | Define the value for the specified key. E.g. Version no. |
Note This fields are optional. If required, it can be overridden at CI step.
Advanced Options
Set Target Platform for the build
Using this option, you can build images for a specific or multiple architectures and operating systems (target platforms). You can select the target platform from the drop-down list or can type to select a customized target platform.
![](https://docs.devtron.ai/~gitbook/image?url=https%3A%2F%2Fdevtron-public-asset.s3.us-east-2.amazonaws.com%2Fimages%2Fcreating-application%2Fdocker-build-configuration%2Fset-target-platform.png&width=768&dpr=4&quality=100&sign=500f2fa3&sv=1)
![](https://docs.devtron.ai/~gitbook/image?url=https%3A%2F%2Fdevtron-public-asset.s3.us-east-2.amazonaws.com%2Fimages%2Fcreating-application%2Fdocker-build-configuration%2Fset-target-platform-2.png&width=768&dpr=4&quality=100&sign=783e98fa&sv=1)
Before selecting a customized target platform, please ensure that the architecture and the operating system are supported by the registry type
you are using, otherwise build will fail. Devtron uses BuildX to build images for multiple target Platforms, which requires higher CI worker resources. To allocate more resources, you can increase value of the following parameters in the devtron-cm
configmap in devtroncd
namespace.
LIMIT_CI_CPU
REQ_CI_CPU
REQ_CI_MEM
LIMIT_CI_MEM
To edit the devtron-cm
configmap in devtroncd
namespace:
If target platform is not set, Devtron will build image for architecture and operating system of the k8s node on which CI is running.
The Target Platform feature might not work in minikube & microk8s clusters as of now.
Docker Build Arguments
It is is a collapsed view including the following parameters:
Key
Value
These fields will contain the key parameter and the value for the specified key for your docker build. This field is Optional. If required, this can be overridden at CI step.
Click Save Configuration.
Last updated