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.
This commit is contained in:
Philipp Horstenkamp 2023-10-21 18:13:03 +02:00 committed by GitHub
parent 88f0673470
commit ad7aa3e53b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 4 deletions

View File

@ -168,9 +168,9 @@ jobs:
- name: Build All prior to push - name: Build All prior to push
run: | run: |
docker build --target ingest . docker build --target ingest --build-arg GIT_HASH=${{github.sha}} .
docker build --target data-transformation . docker build --target data-transformation --build-arg GIT_HASH=${{github.sha}} .
docker build --target web-server . docker build --target web-server --build-arg GIT_HASH=${{github.sha}} .
docker image ls docker image ls
- name: Exit workflow on pull request - name: Exit workflow on pull request
@ -187,6 +187,8 @@ jobs:
- name: Build and push ingest - name: Build and push ingest
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
with: with:
build-args: |
"GIT_HASH=${{github.sha}}"
push: true push: true
tags: | tags: |
ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}/ingest:${{ env.TAG_OR_MAIN }} 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 - name: Build and push data-transformation
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
with: with:
build-args: |
"GIT_HASH=${{github.sha}}"
push: true push: true
tags: | tags: |
ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}/data-transformation:${{ env.TAG_OR_MAIN }} 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 - name: Build and push web-server
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
with: with:
build-args: |
"GIT_HASH=${{github.sha}}"
push: true push: true
tags: | tags: |
ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}/web-server:${{ env.TAG_OR_MAIN }} ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}/web-server:${{ env.TAG_OR_MAIN }}

View File

@ -1,8 +1,15 @@
FROM python:3.11-slim as base 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" ENV SQLALCHEMY_SILENCE_UBER_WARNING="1"
ARG APP_HOME="transparenzregister" ARG APP_HOME="transparenzregister"
ARG GIT_HASH
ENV GIT_HASH=${GIT_HASH}
LABEL GIT_HASH=${GIT_HASH}
WORKDIR /${APP_HOME}/ WORKDIR /${APP_HOME}/
USER root USER root
RUN apt update -y && \ RUN apt update -y && \
@ -15,11 +22,15 @@ RUN pip install --find-links=dist aki-prj23-transparenzregister --no-cache-dir
FROM base as ingest FROM base as ingest
LABEL PART="DATA_INGESTOR"
RUN pip install --find-links=dist aki-prj23-transparenzregister[ingest] --no-cache-dir && \ RUN pip install --find-links=dist aki-prj23-transparenzregister[ingest] --no-cache-dir && \
rm dist/ -R rm dist/ -R
FROM base as data-transformation FROM base as data-transformation
LABEL PART="DATA-TRANSFORMATION"
RUN pip install --find-links=dist aki-prj23-transparenzregister[transformation] --no-cache-dir && \ RUN pip install --find-links=dist aki-prj23-transparenzregister[transformation] --no-cache-dir && \
rm dist/ -R rm dist/ -R
@ -28,6 +39,8 @@ CMD ["--level", "DEBUG"]
FROM base as web-server FROM base as web-server
LABEL PART="WEB-SERVER"
RUN pip install --find-links=dist aki-prj23-transparenzregister[web-server] --no-cache-dir && \ RUN pip install --find-links=dist aki-prj23-transparenzregister[web-server] --no-cache-dir && \
rm dist/ -R rm dist/ -R

View File

@ -1,4 +1,5 @@
"""Configures the logger.""" """Configures the logger."""
import os
import sys import sys
from argparse import ArgumentParser, Namespace from argparse import ArgumentParser, Namespace
from pathlib import Path from pathlib import Path
@ -45,6 +46,9 @@ def configer_logger(
level=level_combined, level=level_combined,
retention=5, 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: def add_logger_options_to_argparse(parser: ArgumentParser) -> None: