Skip to content


Shared Library to build docker images




Name Required Type Description and Default Value
project required str The name of your project.
mavenSettings optional str The maven settings file in Jenkins that has been created for your project. Note the maven settings file specified must exist in Jenkins in order for your project to build.

Default: ${project}-settings
semver optional bool Specify if semantic versioning will be used to version your project. Note edgeX utilizes git-semver for semantic versioning.

Default: true
dockerFilePath optional str The path to the Dockerfile for your project.

Default: Dockerfile
dockerBuildContext optional str The path for Docker to use as its build context when building your project. This applies to building both the CI build image and project image.

Default: .
dockerBuildArgs optional list The list of additonal arguments to pass to Docker when building the image for your project.

Default: []
dockerNamespace optional str The docker registry namespace to use when publishing Docker images. Note for EdgeX projects images are published to the root of the docker registry and thus the namespace should be empty.

Default: ''
dockerImageName optional str The name of the Docker image for your project.

Default: docker-${project}
dockerTags optional str The tag name for your docker image.

Default: []
dockerPushLatest optional str Specify if Jenkins should push the docker image with latest tag.

Default: true
dockerNexusRepo optional str The name of the Docker Nexus repository where the project Docker image dockerImageName will be published to if pushImage is set.

Default: staging
pushImage optional bool Specify if Jenkins should push your project's image to dockerNexusRepo.

Default: true
archiveImage optional bool Specify if the built image need to be archived.

Default: false
archiveName optional bool The name of the archived image.

Default: ${_projectName}-archive.tar.gz
semverBump optional str The semver axis to bump, see git-semver for valid axis values.

Default: pre
releaseBranchOverride optional str Specify if you want to override the release branch.
failureNotify optional str The group emails (comma-delimited) to email when the Jenkins job fails.

arch optional array A list of system architectures to target for the build. Possible values are amd64 or arm64.

Default: ['amd64', 'arm64']


Basic example

edgeXBuildDocker (
    project: 'docker-edgex-consul',
    dockerImageName: 'docker-edgex-consul',
    semver: true

Complex example

edgeXBuildDocker (
    project: 'edgex-compose',
    mavenSettings: 'ci-build-images-settings',
    dockerImageName: 'custom-edgex-compose',
    dockerNamespace: 'edgex-devops',
    dockerNexusRepo: 'snapshots',
    dockerTags: ["1.24.1"],
    releaseBranchOverride: 'edgex-compose'

Full example

This example shows all the settings that can be specified and their default values.

edgeXBuildDocker (
    project: 'sample-project',
    mavenSettings: 'sample-project-settings',
    semver: true,
    dockerFilePath: 'Dockerfile',
    dockerBuildContext: '.',
    dockerBuildArgs: [],
    dockerNamespace: '',
    dockerImageName: 'docker-sample-project',
    dockerTags: [],
    dockerPushLatest: true,
    dockerNexusRepo: 'staging',
    pushImage: true,
    archiveImage: false,
    archiveName: sample-project-archive.tar.gz,
    semverBump: 'pre',
    releaseBranchOverride: 'golang',
    failureNotify: ',',
    arch: ['amd64', 'arm64']