From c2b5073ca72f3e018db82967ebc68f70f3aa1263 Mon Sep 17 00:00:00 2001 From: konsthol Date: Mon, 26 May 2025 14:49:19 +0300 Subject: [PATCH] totally more readable --- Dockerfile | 7 +++++ Jenkinsfile | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 Dockerfile create mode 100644 Jenkinsfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f8b6114 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM docker:dind + +CMD ["sh", "-c", " +dockerd --insecure-registry nexus-repo-nexus-repository-manager.default.svc.cluster.local:5000 & +sleep 5 +docker login http://nexus-repo-nexus-repository-manager.default.svc.cluster.local:5000 -u admin -p testpass +"] diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..725e1be --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,78 @@ +@Library('my-shared-library@main') _ + +pipeline { + agent { + kubernetes { + yaml """ +apiVersion: v1 +kind: Pod +metadata: + name: default + namespace: default + labels: + jenkins-server-jenkins-agent: "true" +spec: + containers: + - name: jnlp + image: jenkins/inbound-agent:3309.v27b_9314fd1a_4-2 + workingDir: /home/jenkins/agent + env: + - name: JENKINS_URL + value: "http://jenkins-server.default.svc.cluster.local:8080/" + resources: + requests: + cpu: "512m" + memory: "512Mi" + limits: + cpu: "512m" + memory: "512Mi" + + - name: docker + image: docker:dind + workingDir: /home/jenkins/agent + command: ["/bin/sh", "-c"] + args: ["sleep 9999999"] + securityContext: + privileged: true + env: + - name: NEXUS_DOCKER_URL + value: "nexus-repo-nexus-repository-manager.default.svc.cluster.local:5000" + - name: NEXUS_DOCKER_PASS + value: "testpass" + + restartPolicy: Never + serviceAccountName: jenkins-server + volumes: + - emptyDir: {} + name: workspace-volume +""" + } + } + stages{ + stage('Retrieve docker Environment Variables') { + steps { + container('docker') { + script { + env.NEXUS_DOCKER_URL = sh(script: 'echo $NEXUS_DOCKER_URL', returnStdout: true).trim() + env.NEXUS_DOCKER_PASS = sh(script: 'echo $NEXUS_DOCKER_PASS', returnStdout: true).trim() + } + } + } + } + stage('Docker build & push') { + steps { + script { + dockerBuildAndPush(env.NEXUS_DOCKER_URL, "custom-dind", "./Dockerfile", ".", "admin", env.NEXUS_DOCKER_PASS) + } + } + } + } + post { + success { + echo 'Custom Docker DIND build Successful' + } + failure { + echo 'Custom Docker DIND build Failed' + } + } +}