that's all folks
This commit is contained in:
42
src/com/example/DockerBuilder.groovy
Normal file
42
src/com/example/DockerBuilder.groovy
Normal file
@@ -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}"
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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') {
|
stage('Make jar') {
|
||||||
script {
|
script {
|
||||||
buildJar(true)
|
buildJar(true)
|
||||||
@@ -16,7 +20,11 @@ def call(String appName, String helmChartPath, String helmRepoName,String helmCh
|
|||||||
}
|
}
|
||||||
stage('Docker build & push') {
|
stage('Docker build & push') {
|
||||||
script {
|
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') {
|
stage('Add Helm Repo') {
|
||||||
|
|||||||
Reference in New Issue
Block a user