From d8c685ccad0a50b7c190fac3c14fe1ee982c1602 Mon Sep 17 00:00:00 2001 From: Richard Morgan Date: Sun, 28 Oct 2018 22:22:27 -0400 Subject: [PATCH] switch jenkins to BlueOcean builds and add healthcheck and Jenkinsfile. not sure we can actually complete a pipeline deployment successfully, because of restart --- dockerfiles/services/jenkins/Jenkinsfile | 32 +++++++++++++++++++ .../services/jenkins/docker-compose.yml | 16 ++++++++-- 2 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 dockerfiles/services/jenkins/Jenkinsfile diff --git a/dockerfiles/services/jenkins/Jenkinsfile b/dockerfiles/services/jenkins/Jenkinsfile new file mode 100644 index 0000000..0a56b56 --- /dev/null +++ b/dockerfiles/services/jenkins/Jenkinsfile @@ -0,0 +1,32 @@ +node('docker') { + def app_name = 'jenkins' + def app_port = '8080' + def workdir = 'dockerfiles/services/jenkins' + + stage('prepare') { + git credentialsId: 'f1f58215-c789-44a2-9b72-50e4425cb061', url: 'ssh://git@git.xai-corp.net:10022/xai-corp.net/provisioning.git' + sh 'ls' + } + + stage('build') { + dir(workdir) { + sh "DOCKER_HOST=dkhost:2376 docker-compose -f docker-compose.yml pull" + } + } + + stage('deploy') { + dir(workdir) { + sh """ + docker stack deploy -c docker-compose.yml jenkins + docker service update jenkins_app + """ + } + } + + stage('smoke tests') { + dir(workdir) { + sleep 60 + sh "curl -If http://dkhost:8080/metrics/ejkxeVI-iKLy968ji9AnfYmOHGIh1kYd3gA500JqrRxzTeenT06ynR5Dqo0CQplO/healthcheck" + } + } +} diff --git a/dockerfiles/services/jenkins/docker-compose.yml b/dockerfiles/services/jenkins/docker-compose.yml index 55782a4..8224294 100644 --- a/dockerfiles/services/jenkins/docker-compose.yml +++ b/dockerfiles/services/jenkins/docker-compose.yml @@ -10,7 +10,8 @@ services: app: # restart: always # privileged: true - image: "jenkins/jenkins:lts" +# image: "jenkins/jenkins:lts" + image: "jenkinsci/blueocean" volumes: - jenkins_home:/var/jenkins_home @@ -25,12 +26,23 @@ services: restart_policy: condition: any delay: "5s" - max_attempts: 1 + max_attempts: 3 + update_config: + parallelism: 1 + delay: 2s + order: start-first resources: limits: cpus: '2' memory: 1536M + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080/metrics/ejkxeVI-iKLy968ji9AnfYmOHGIh1kYd3gA500JqrRxzTeenT06ynR5Dqo0CQplO/ping"] + interval: 1m30s + timeout: 10s + retries: 3 + start_period: 3m + logging: driver: fluentd options: