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') { image_tag = env.BRANCH_NAME == "master" ? "latest" : env.BRANCH_NAME.replace("/", "--") docker.image(image_name).push(image_tag) } } } } } stage("Show images") { steps { container("docker") { sh 'docker images' } } } } }