From 59754e04122cd0ffc8d785cc23b46b9088dc72a2 Mon Sep 17 00:00:00 2001 From: dave Date: Sun, 5 Jun 2022 16:48:54 -0700 Subject: [PATCH] add ci, bump base to focal --- Dockerfile | 9 ++++--- Jenkinsfile | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 Jenkinsfile diff --git a/Dockerfile b/Dockerfile index f4130ac..642d663 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,12 @@ -FROM ubuntu:trusty +FROM dockermirror:5000/ubuntu:focal ENV _IMG_USERNAME=admin _IMG_PASSWORD=admin ADD start /start -RUN locale-gen en_US && \ - apt-get update && \ - apt-get install -y icewm icewm-themes xterm openssh-server supervisor && \ - apt-get install -y tightvncserver && \ +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y icewm xterm openssh-server supervisor && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y tightvncserver && \ mkdir /var/run/sshd && \ chmod +x /start diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..3b44056 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,68 @@ +def image_name = "dpedu/desktop" + +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' + } + } + } + } +}