From 7cd996020cd651a9d1e04483aa66ad1cf228bca1 Mon Sep 17 00:00:00 2001 From: dave Date: Sun, 31 Jul 2022 15:54:29 -0700 Subject: [PATCH] configure jenkinsfile --- Jenkinsfile | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index e69de29..2fd852a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -0,0 +1,68 @@ +def image_name = "dpedu/photolib" + +pipeline { + agent { + kubernetes { + yaml """ +apiVersion: v1 +kind: Pod +spec: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: # avoid nodes already running a jenkins job + - podAffinityTerm: + labelSelector: + matchExpressions: + - key: jenkins + operator: In + values: + - slave + topologyKey: node + containers: + - name: docker + image: docker:20-dind + args: + - "--insecure-registry" + - "dockermirror:5000" + securityContext: + privileged: true +""" + } + } + stages { + stage("Build image") { + steps { + container("docker") { + script { + try { + docker.withRegistry('http://dockermirror:5000') { + docker.image("ubuntu:focal").pull() + docker.image(image_name).pull() // Pull a recent version to share base layers with (?) + } + } catch (exc) { + echo "couldn't pull image, assuming we're building it for the first time" + } + docker.build(image_name) + } + } + } + } + stage("Push image") { + steps { + container("docker") { + script { + docker.withRegistry('http://dockermirror:5000') { + docker.image(image_name).push("latest") + } + } + } + } + } + stage("Show images") { + steps { + container("docker") { + sh 'docker images' + } + } + } + } +}