--- /dev/null
+// Builds a docker container. This requires the kaniko container to be included using agentsetup
+//
+// Mandatory arguments:
+// - context: the relative path in the source repository to the directory where the docker file is located
+// - container: the name of the container to build
+//
+// Optional arguments:
+// - cache: Whether to use the cache for building containers. Defaults to true
+// - dockerfile: Name of the docker file in the context directory. Defaults to Dockerfile
+// - repo: Repository to publish container to. Defaults to the CONTAINER_REGISTRY environment variable
+// - version: Container version to build. Default to the value of the BRANCH_NAME variable
+//
+def call(Map args) {
+ def defaults = [
+ cache: true,
+ cachettl: "100000h",
+ dockerfile: 'Dockerfile',
+ repo: env.CONTAINER_REGISTRY,
+ version: env.BRANCH_NAME
+ ]
+ args = defaults << args
+ container('kaniko') {
+ sh """
+ echo "Building container with settings: ${args}"
+ /kaniko/executor --dockerfile ${args.dockerfile} --cache=${args.cache} --cache-ttl=${args.cachettl} --context \$( pwd )/${args.context} --destination ${args.repo}/${args.container}:${args.version}
+ """
+ }
+}