From d5f30f617d5a19e7b013e157fb9f177865d7c596 Mon Sep 17 00:00:00 2001 From: Johannes Visintini Date: Mon, 13 May 2024 15:14:02 +0200 Subject: [PATCH 1/4] automatically push images to Docker Registry --- Jenkinsfile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 0906eeeb2..b4beb193d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,6 +21,9 @@ pipeline { // POETRY_RUN = 'python -m poetry run --no-ansi --no-interaction' POETRY_RUN = 'python -m poetry run' + DOCKER_CREDENTIALS_ID = 'DockerHubHeiGITCredentials' + DOCKER_REPOSITORY = 'heigit/ohsome-quality-api' + WORK_DIR = '/opt/oqapi' MODULE_DIR = '.' @@ -122,6 +125,24 @@ pipeline { } } + stage('Build and Deploy Image') { + steps { + script { + docker.withRegistry('', DOCKER_CREDENTIALS_ID) { + if (env.BRANCH_NAME ==~ SNAPSHOT_BRANCH_REGEX) { + dockerImage = docker.build(DOCKER_REPOSITORY + ':main') + dockerImage.push() + } + if (VERSION ==~ RELEASE_REGEX && env.TAG_NAME ==~ RELEASE_REGEX) { + dockerImage = docker.build(DOCKER_REPOSITORY + ':' + VERSION) + dockerImage.push() + dockerImage.push('latest') + } + } + } + } + } + stage('Wrapping Up') { steps { encourage() From 7507ef4aeca04ee0261b7f8313df1c92c5fb8285 Mon Sep 17 00:00:00 2001 From: Johannes Visintini Date: Mon, 13 May 2024 18:27:42 +0200 Subject: [PATCH 2/4] docker push: use branch name as tag --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b4beb193d..c441cd102 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -130,7 +130,7 @@ pipeline { script { docker.withRegistry('', DOCKER_CREDENTIALS_ID) { if (env.BRANCH_NAME ==~ SNAPSHOT_BRANCH_REGEX) { - dockerImage = docker.build(DOCKER_REPOSITORY + ':main') + dockerImage = docker.build(DOCKER_REPOSITORY + ':' + env.BRANCH_NAME) dockerImage.push() } if (VERSION ==~ RELEASE_REGEX && env.TAG_NAME ==~ RELEASE_REGEX) { From 784cf8b2638f5d405c5e3de9e0507c766a173fbd Mon Sep 17 00:00:00 2001 From: Johannes Visintini Date: Mon, 13 May 2024 17:16:47 +0200 Subject: [PATCH 3/4] increase performance of docker build see also https://stackoverflow.com/a/76211540 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b903740e1..56a25f0a2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,7 @@ RUN apt-get update && \ # within docker container: run without root privileges RUN groupadd -g $gid oqapi -RUN useradd -md /home/oqapi -u $uid -g $gid oqapi +RUN useradd -l -md /home/oqapi -u $uid -g $gid oqapi WORKDIR /opt/oqapi RUN pip install --no-cache-dir poetry RUN chown oqapi:oqapi . -R From d3ea254575fd4a93d5e4a493b854d4a599580ea5 Mon Sep 17 00:00:00 2001 From: Johannes Visintini Date: Mon, 13 May 2024 19:11:28 +0200 Subject: [PATCH 4/4] add README Badge for Docker --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d3d7acdff..99935f1ef 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![Build Status](https://jenkins.heigit.org/buildStatus/icon?job=OQAPI/main)](https://jenkins.heigit.org/job/OQAPI/job/main/) [![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=ohsome-quality-api&metric=alert_status)](https://sonarcloud.io/dashboard?id=ohsome-quality-api) +[![Docker Image Version](https://img.shields.io/docker/v/heigit/ohsome-quality-api)](https://hub.docker.com/r/heigit/ohsome-quality-api) [![LICENSE](https://img.shields.io/badge/license-AGPL--v3-orange)](LICENSE.txt) [![Dashboard](https://img.shields.io/website?url=https%3A%2F%2Fdashboard.ohsome.org&label=dashboard)](https://dashboard.ohsome.org/#backend=oqtApi) [![status: active](https://github.com/GIScience/badges/raw/master/status/active.svg)](https://github.com/GIScience/badges#active)