From ad7aa3e53b96a1cfae6a3c6d62caa71772500504 Mon Sep 17 00:00:00 2001 From: Philipp Horstenkamp Date: Sat, 21 Oct 2023 18:13:03 +0200 Subject: [PATCH] Filled Docker Labels and ENVs to identify the git revision it was build from (#250) Added labels and env vars to identify the git revion a container was build from to have a more transparent build flow of untaged images. --- .github/workflows/test-and-build-action.yaml | 12 +++++++++--- Dockerfile | 15 ++++++++++++++- .../utils/logger_config.py | 4 ++++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-and-build-action.yaml b/.github/workflows/test-and-build-action.yaml index f3d7fa9..d5464f8 100644 --- a/.github/workflows/test-and-build-action.yaml +++ b/.github/workflows/test-and-build-action.yaml @@ -168,9 +168,9 @@ jobs: - name: Build All prior to push run: | - docker build --target ingest . - docker build --target data-transformation . - docker build --target web-server . + docker build --target ingest --build-arg GIT_HASH=${{github.sha}} . + docker build --target data-transformation --build-arg GIT_HASH=${{github.sha}} . + docker build --target web-server --build-arg GIT_HASH=${{github.sha}} . docker image ls - name: Exit workflow on pull request @@ -187,6 +187,8 @@ jobs: - name: Build and push ingest uses: docker/build-push-action@v5 with: + build-args: | + "GIT_HASH=${{github.sha}}" push: true tags: | ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}/ingest:${{ env.TAG_OR_MAIN }} @@ -197,6 +199,8 @@ jobs: - name: Build and push data-transformation uses: docker/build-push-action@v5 with: + build-args: | + "GIT_HASH=${{github.sha}}" push: true tags: | ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}/data-transformation:${{ env.TAG_OR_MAIN }} @@ -207,6 +211,8 @@ jobs: - name: Build and push web-server uses: docker/build-push-action@v5 with: + build-args: | + "GIT_HASH=${{github.sha}}" push: true tags: | ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}/web-server:${{ env.TAG_OR_MAIN }} diff --git a/Dockerfile b/Dockerfile index 521e6f2..16f6934 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,15 @@ FROM python:3.11-slim as base -LABEL AUTHOR="AKI Projektseminar 23" +LABEL AUTHOR="AKI Projektseminar 23" \ + PROJECT="Transparenzregister" \ + ORGANISATION="fh-swf.de" + ENV SQLALCHEMY_SILENCE_UBER_WARNING="1" ARG APP_HOME="transparenzregister" +ARG GIT_HASH +ENV GIT_HASH=${GIT_HASH} +LABEL GIT_HASH=${GIT_HASH} + WORKDIR /${APP_HOME}/ USER root RUN apt update -y && \ @@ -15,11 +22,15 @@ RUN pip install --find-links=dist aki-prj23-transparenzregister --no-cache-dir FROM base as ingest +LABEL PART="DATA_INGESTOR" + RUN pip install --find-links=dist aki-prj23-transparenzregister[ingest] --no-cache-dir && \ rm dist/ -R FROM base as data-transformation +LABEL PART="DATA-TRANSFORMATION" + RUN pip install --find-links=dist aki-prj23-transparenzregister[transformation] --no-cache-dir && \ rm dist/ -R @@ -28,6 +39,8 @@ CMD ["--level", "DEBUG"] FROM base as web-server +LABEL PART="WEB-SERVER" + RUN pip install --find-links=dist aki-prj23-transparenzregister[web-server] --no-cache-dir && \ rm dist/ -R diff --git a/src/aki_prj23_transparenzregister/utils/logger_config.py b/src/aki_prj23_transparenzregister/utils/logger_config.py index 04c8cb2..50b3fa3 100644 --- a/src/aki_prj23_transparenzregister/utils/logger_config.py +++ b/src/aki_prj23_transparenzregister/utils/logger_config.py @@ -1,4 +1,5 @@ """Configures the logger.""" +import os import sys from argparse import ArgumentParser, Namespace from pathlib import Path @@ -45,6 +46,9 @@ def configer_logger( level=level_combined, retention=5, ) + logger.info( + f"Starting an application build von git revision: \"{os.getenv('GIT_HASH', 'NO-KNOWN-HASH')}\"" + ) def add_logger_options_to_argparse(parser: ArgumentParser) -> None: