node('docker') { def service_name = 'metrics' def app_name = 'prometheus' def workdir = 'dockerfiles/services/prometheus' def build_file = 'docker-compose.yml' def deployment_file = 'docker-compose-prod.yml' 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) { docker.withRegistry('http://dkregistry.xai-corp.net:5000') { def customImage = docker.build("dkregistry.xai-corp.net:5000/xaicorp/${app_name}:latest", "-f Dockerfile .") customImage.push() } sh "docker-compose -f ${deployment_file} pull" } } stage('deploy') { dir(workdir) { sh """ docker stack deploy -c ${deployment_file} ${service_name} docker service update -q ${service_name}_prometheus docker service update -q ${service_name}_statsd_exporter docker service update -q ${service_name}_fluentd_exporter docker service update -q ${service_name}_node_exporter docker service update -q ${service_name}_graphana """ } } stage('smoke tests') { dir(workdir) { sleep 60 sh "curl -If https://metrics.xai-corp.net" } } }