From 6f8bff3bb8da599b0ce8d31ce89e01374b7e4360 Mon Sep 17 00:00:00 2001 From: konsthol Date: Tue, 27 May 2025 12:02:13 +0300 Subject: [PATCH] that's all folks --- src/com/example/DockerBuilder.groovy | 42 +++++++++++++++++++ vars/buildAndDeploy.groovy | 12 +++++- .../customDockerBuildAndPush.groovy | 0 vars/{ => unused}/dockerBuildAndPush.groovy | 0 4 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 src/com/example/DockerBuilder.groovy rename vars/{ => unused}/customDockerBuildAndPush.groovy (100%) rename vars/{ => unused}/dockerBuildAndPush.groovy (100%) diff --git a/src/com/example/DockerBuilder.groovy b/src/com/example/DockerBuilder.groovy new file mode 100644 index 0000000..8c2e8e8 --- /dev/null +++ b/src/com/example/DockerBuilder.groovy @@ -0,0 +1,42 @@ +package com.example + +class DockerBuilder { + def dockerBuildAndPush(String dockerRepo, String imageName, String dockerfilePath, String buildContext, String nexusUser, String nexusPass) { + container('docker') { + sh "dockerd --insecure-registry http://${dockerRepo} &" + echo "Started Docker daemon in container 'docker'" + + sh "docker build -t ${imageName} -f ${dockerfilePath} ${buildContext}" + echo "Docker image ${imageName} built" + + sh "docker login http://${dockerRepo} -u ${nexusUser} -p ${nexusPass}" + echo "Logged in to ${dockerRepo}" + + sh "docker tag ${imageName} ${dockerRepo}/my-docker-repo/${imageName}:latest" + echo "Image ${imageName} tagged" + + sh "docker push ${dockerRepo}/my-docker-repo/${imageName}:latest" + echo "Pushed Docker image ${imageName} to ${dockerRepo}" + } + } + + def customDockerBuildAndPush(String dockerRepo, String imageName, String dockerfilePath, String buildContext, String nexusUser, String nexusPass) { + container('custom-docker') { + sh "dockerd &" + echo "Started Docker daemon in container 'custom-docker'" + + sh "docker build -t ${imageName} -f ${dockerfilePath} ${buildContext}" + echo "Docker image ${imageName} built" + + sh "docker login http://${dockerRepo} -u ${nexusUser} -p ${nexusPass}" + echo "Logged in to ${dockerRepo}" + + sh "docker tag ${imageName} ${dockerRepo}/my-docker-repo/${imageName}:latest" + echo "Image ${imageName} tagged" + + sh "docker push ${dockerRepo}/my-docker-repo/${imageName}:latest" + echo "Pushed Docker image ${imageName} to ${dockerRepo}" + + } + } +} diff --git a/vars/buildAndDeploy.groovy b/vars/buildAndDeploy.groovy index 1897f37..c8a7938 100644 --- a/vars/buildAndDeploy.groovy +++ b/vars/buildAndDeploy.groovy @@ -1,4 +1,8 @@ -def call(String appName, String helmChartPath, String helmRepoName,String helmChartVersion, String dockerBuildFunction) { +import com.example.DockerBuilder + +def call(String appName, String helmChartPath, String helmRepoName,String helmChartVersion, Boolean useCustomDocker) { + def dockerBuilder = new DockerBuilder() + stage('Make jar') { script { buildJar(true) @@ -16,7 +20,11 @@ def call(String appName, String helmChartPath, String helmRepoName,String helmCh } stage('Docker build & push') { script { - this."${dockerBuildFunction}"(env.NEXUS_DOCKER_URL, appName, "./Dockerfile", "target", "admin", env.NEXUS_DOCKER_PASS) + if (useCustomDocker) { + dockerBuilder.customDockerBuildAndPush(env.NEXUS_DOCKER_URL, appName, "./Dockerfile", "target", "admin", env.NEXUS_DOCKER_PASS) + } else { + dockerBuilder.dockerBuildAndPush(env.NEXUS_DOCKER_URL, appName, "./Dockerfile", "target", "admin", env.NEXUS_DOCKER_PASS) + } } } stage('Add Helm Repo') { diff --git a/vars/customDockerBuildAndPush.groovy b/vars/unused/customDockerBuildAndPush.groovy similarity index 100% rename from vars/customDockerBuildAndPush.groovy rename to vars/unused/customDockerBuildAndPush.groovy diff --git a/vars/dockerBuildAndPush.groovy b/vars/unused/dockerBuildAndPush.groovy similarity index 100% rename from vars/dockerBuildAndPush.groovy rename to vars/unused/dockerBuildAndPush.groovy