From 3a85a9232f0e9c691488e2758bdd041add37f27a Mon Sep 17 00:00:00 2001 From: Bram van Dartel Date: Tue, 31 Dec 2024 09:14:41 +0100 Subject: [PATCH 1/8] Update Dockerfile --- Dockerfile | 186 +++++++++++++++++++++++------------------------------ 1 file changed, 80 insertions(+), 106 deletions(-) diff --git a/Dockerfile b/Dockerfile index f548ed7..ccf18ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,128 +1,105 @@ #--------------------------------------------------------------------------------------------------------------------------- # STAGING STEP #--------------------------------------------------------------------------------------------------------------------------- - FROM --platform=$BUILDPLATFORM python:3.12-alpine3.21 as staging WORKDIR /app ARG DSMR_VERSION ENV DSMR_VERSION=${DSMR_VERSION:-5.0.0} -RUN echo "**** Download DSMR ****" \ - && apk add --no-cache curl \ - && curl -SskLf "https://github.com/dsmrreader/dsmr-reader/archive/refs/tags/v${DSMR_VERSION}.tar.gz" | tar xvzf - --strip-components=1 -C /app \ - && curl -SskLf "https://raw.githubusercontent.com/dsmrreader/dsmr-reader/v5/dsmr_datalogger/scripts/dsmr_datalogger_api_client.py" -o /app/dsmr_datalogger_api_client.py +RUN apk add --no-cache curl \ + && echo "**** Download DSMR ****" \ + && curl -SskLf "https://github.com/dsmrreader/dsmr-reader/archive/refs/tags/v${DSMR_VERSION}.tar.gz" | tar xvzf - --strip-components=1 -C /app \ + && curl -SskLf "https://raw.githubusercontent.com/dsmrreader/dsmr-reader/v${DSMR_VERSION}/dsmr_datalogger/scripts/dsmr_datalogger_api_client.py" -o /app/dsmr_datalogger_api_client.py #--------------------------------------------------------------------------------------------------------------------------- -# BUILD STEP +# BASE STEP #--------------------------------------------------------------------------------------------------------------------------- FROM python:3.12-alpine3.21 as base -# Build the binary according to the TARGET platform variables +# Build arguments ARG TARGETARCH ARG TARGETVARIANT - +ARG S6_VERSION="3.2.0.2" ARG QEMU_ARCH -ARG S6_VERSION="3.1.6.2" -ARG DOCKER_TARGET_RELEASE ARG DSMR_VERSION - +ENV DSMR_VERSION=${DSMR_VERSION} + +# Dynamische architectuur voor S6-overlay +RUN case "${TARGETARCH}/${TARGETVARIANT}" in \ + "amd64/") S6_ARCH=x86_64 ;; \ + "arm64/") S6_ARCH=aarch64 ;; \ + "arm/v7") S6_ARCH=arm ;; \ + "arm/v6") S6_ARCH=armhf ;; \ + *) echo "Unsupported TARGETARCH/TARGETVARIANT: ${TARGETARCH}/${TARGETVARIANT}" && exit 1 ;; \ + esac \ + && echo "S6_ARCH=${S6_ARCH}" > /tmp/s6_arch + +# Algemene omgevingsvariabelen ENV PS1="$(whoami)@dsmr_reader_docker:$(pwd)\\$ " \ - TERM="xterm" - -ENV QEMU_ARCH=${QEMU_ARCH:-x86_64} \ - DSMR_VERSION=${DSMR_VERSION} \ - DOCKER_TARGET_RELEASE=${DOCKER_TARGET_RELEASE} \ - PIP_NO_CACHE_DIR=1 \ - S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 + TERM="xterm" \ + PIP_NO_CACHE_DIR=1 \ + S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 +# DSMR Reader-specifieke omgevingsvariabelen ENV DJANGO_SECRET_KEY=dsmrreader \ - DJANGO_DATABASE_ENGINE=django.db.backends.postgresql \ - DSMRREADER_SUPPRESS_STORAGE_SIZE_WARNINGS=True \ - DJANGO_DATABASE_NAME=dsmrreader \ - DJANGO_DATABASE_USER=dsmrreader \ - DJANGO_DATABASE_PASSWORD=dsmrreader \ - DJANGO_DATABASE_HOST=dsmrdb \ - DJANGO_DATABASE_PORT=5432 \ - DSMRREADER_ADMIN_USER=admin \ - DSMRREADER_ADMIN_PASSWORD=admin \ - DSMRREADER_OPERATION_MODE=standalone \ - VACUUM_DB_ON_STARTUP=false \ - DSMRREADER_REMOTE_DATALOGGER_INPUT_METHOD=serial \ - DSMRREADER_REMOTE_DATALOGGER_SERIAL_PORT=/dev/ttyUSB0 \ - DSMRREADER_REMOTE_DATALOGGER_SERIAL_BAUDRATE=115200 \ - DSMRREADER_REMOTE_DATALOGGER_SERIAL_BYTESIZE=8 \ - DSMRREADER_REMOTE_DATALOGGER_SERIAL_PARITY=N \ - DSMRREADER_REMOTE_DATALOGGER_NETWORK_HOST=127.0.0.1 \ - DSMRREADER_REMOTE_DATALOGGER_NETWORK_PORT=23 - -# copy local files + DJANGO_DATABASE_ENGINE=django.db.backends.postgresql \ + DJANGO_DATABASE_NAME=dsmrreader \ + DJANGO_DATABASE_USER=dsmrreader \ + DJANGO_DATABASE_PASSWORD=dsmrreader \ + DJANGO_DATABASE_HOST=dsmrdb \ + DJANGO_DATABASE_PORT=5432 \ + DSMRREADER_ADMIN_USER=admin \ + DSMRREADER_ADMIN_PASSWORD=admin \ + DSMRREADER_OPERATION_MODE=standalone \ + VACUUM_DB_ON_STARTUP=false \ + DSMRREADER_SUPPRESS_STORAGE_SIZE_WARNINGS=True \ + DSMRREADER_REMOTE_DATALOGGER_INPUT_METHOD=serial \ + DSMRREADER_REMOTE_DATALOGGER_SERIAL_PORT=/dev/ttyUSB0 \ + DSMRREADER_REMOTE_DATALOGGER_SERIAL_BAUDRATE=115200 \ + DSMRREADER_REMOTE_DATALOGGER_SERIAL_BYTESIZE=8 \ + DSMRREADER_REMOTE_DATALOGGER_SERIAL_PARITY=N \ + DSMRREADER_REMOTE_DATALOGGER_NETWORK_HOST=127.0.0.1 \ + DSMRREADER_REMOTE_DATALOGGER_NETWORK_PORT=23 + +# Kopieer bestanden uit staging COPY --from=staging /app /app -RUN echo "**** install runtime packages ****" \ - && rm -rf /var/cache/apk/* \ - && rm -rf /tmp/* \ - && apk --update add --no-cache \ - bash \ - curl \ - coreutils \ - ca-certificates \ - shadow \ - dpkg \ - jq \ - nginx \ - openssl \ - netcat-openbsd \ - postgresql17-client \ - mariadb-connector-c-dev \ - mariadb-client \ - libjpeg-turbo \ - tzdata - -RUN echo "**** install s6 overlay ****" \ - && case "${TARGETARCH}/${TARGETVARIANT}" in \ - "amd64/") S6_ARCH=x86_64 ;; \ - "arm64/") S6_ARCH=aarch64 ;; \ - "arm/v7") S6_ARCH=arm ;; \ - "arm/v6") S6_ARCH=armhf ;; \ - esac \ - && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v"${S6_VERSION}"/s6-overlay-noarch.tar.xz \ - && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v"${S6_VERSION}"/s6-overlay-"${S6_ARCH}".tar.xz \ - && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz \ - && tar -C / -Jxpf /tmp/s6-overlay-"${S6_ARCH}".tar.xz \ - && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v"${S6_VERSION}"/s6-overlay-symlinks-noarch.tar.xz \ - && tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz \ - && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v"${S6_VERSION}"/s6-overlay-symlinks-arch.tar.xz \ - && tar -C / -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz \ - && rm -rf /tmp/s6-overlay-*.tar.xz - -RUN echo "**** install build packages ****" \ - && apk add --no-cache --virtual .build-deps gcc python3-dev musl-dev postgresql17-dev build-base mariadb-dev libpq-dev libffi-dev jpeg-dev cargo rust \ - && echo "**** install pip packages ****" \ - && python3 -m pip install -r /app/dsmrreader/provisioning/requirements/base.txt --no-cache-dir \ - && python3 -m pip install mysqlclient --no-cache-dir \ - && python3 -m pip install tzupdate --no-cache-dir \ - && echo "**** create app user and make base folders ****" \ - && groupmod -g 1000 users \ - && useradd -u 803 -U -d /config -s /bin/false app \ - && usermod -G users,dialout,audio app \ - && mkdir -vp /app /config /defaults \ - && echo "**** copy default settings dsmr reader ****" \ - && cp -f /app/dsmrreader/provisioning/django/settings.py.template /app/dsmrreader/settings.py \ - && echo "**** cleanup package leftovers ****" \ - && apk --purge del .build-deps \ - && apk --purge del \ - && rm -rf /var/cache/apk/* \ - && rm -rf /tmp/* - -RUN echo "**** configure nginx package ****" \ - && mkdir -vp /run/nginx/ \ - && mkdir -vp /etc/nginx/http.d \ - && ln -sf /dev/stdout /var/log/nginx/access.log \ - && ln -sf /dev/stderr /var/log/nginx/error.log \ - && rm -f /etc/nginx/http.d/default.conf \ - && mkdir -vp /var/www/dsmrreader/static \ - && cp -f /app/dsmrreader/provisioning/nginx/dsmr-webinterface /etc/nginx/http.d/dsmr-webinterface.conf +RUN apk add --no-cache \ + bash curl coreutils ca-certificates shadow jq nginx \ + openssl postgresql17-client libjpeg-turbo tzdata \ + && echo "**** install S6 overlay ****" \ + && S6_ARCH=$(cat /tmp/s6_arch) \ + && wget -q "https://github.com/just-containers/s6-overlay/releases/download/v${S6_VERSION}/s6-overlay-noarch.tar.xz" -O /tmp/s6-overlay-noarch.tar.xz \ + && wget -q "https://github.com/just-containers/s6-overlay/releases/download/v${S6_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" -O /tmp/s6-overlay-arch.tar.xz \ + && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz \ + && tar -C / -Jxpf /tmp/s6-overlay-arch.tar.xz \ + && rm -f /tmp/s6-overlay*.tar.xz /tmp/s6_arch \ + && echo "**** install build dependencies and pip packages ****" \ + && apk add --no-cache --virtual .build-deps \ + gcc python3-dev musl-dev postgresql17-dev build-base \ + libffi-dev jpeg-dev rust cargo mariadb-dev \ + && python3 -m pip install --no-cache-dir -r /app/dsmrreader/provisioning/requirements/base.txt \ + && python3 -m pip install --no-cache-dir mysqlclient tzupdate \ + && echo "**** cleanup ****" \ + && apk del .build-deps \ + && rm -rf /var/cache/apk/* /tmp/* /root/.cache + +# Setup nginx +RUN mkdir -p /run/nginx /etc/nginx/http.d /var/www/dsmrreader/static \ + && ln -sf /dev/stdout /var/log/nginx/access.log \ + && ln -sf /dev/stderr /var/log/nginx/error.log \ + && rm -f /etc/nginx/http.d/default.conf \ + && cp /app/dsmrreader/provisioning/nginx/dsmr-webinterface /etc/nginx/http.d/dsmr-webinterface.conf + +# Create app user +RUN groupmod -g 1000 users \ + && useradd -u 803 -U -d /config -s /bin/false app \ + && usermod -G users,dialout,audio app \ + && mkdir -p /config /defaults + +# Copy settings template +RUN cp /app/dsmrreader/provisioning/django/settings.py.template /app/dsmrreader/settings.py #--------------------------------------------------------------------------------------------------------------------------- # FINAL STEP @@ -131,10 +108,7 @@ FROM base as final COPY rootfs / -# TODO: Improve healtcheck to respond on 200 only -# TODO: Improve healtcheck so it's only valid for containers with the webinterface enabled -HEALTHCHECK --interval=15s --timeout=3s --retries=10 CMD curl -Lsf http://127.0.0.1/about -o /dev/null -w "HTTP_%{http_code}" || exit 1 +HEALTHCHECK --interval=15s --timeout=3s --retries=10 CMD curl -Lsf http://127.0.0.1/about -o /dev/null || exit 1 WORKDIR /app - ENTRYPOINT ["/init"] From 68fc2d24d2751a964f2404baec07fa8261f33ee2 Mon Sep 17 00:00:00 2001 From: Bram van Dartel Date: Tue, 31 Dec 2024 09:16:33 +0100 Subject: [PATCH 2/8] Update docker-compose.example.yaml --- examples/docker-compose.example.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/docker-compose.example.yaml b/examples/docker-compose.example.yaml index 4d58e08..36db9f8 100755 --- a/examples/docker-compose.example.yaml +++ b/examples/docker-compose.example.yaml @@ -2,7 +2,7 @@ version: '3' services: dsmrdb: - # When using Postgres, release 13.x, 14.x, 15.x, and 16.x are supported only + # When using Postgres, release 14.x, 15.x, 16.x and 17.x are supported only # due to the limited availability of client packages, especially for arm32v7 image: postgres:16-alpine container_name: dsmrdb From a5d85c8850655441fc8f5802d6ae4ecd44a62cf1 Mon Sep 17 00:00:00 2001 From: Bram van Dartel Date: Tue, 31 Dec 2024 09:18:29 +0100 Subject: [PATCH 3/8] Update cleandb.sh --- rootfs/app/cleandb.sh | 48 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/rootfs/app/cleandb.sh b/rootfs/app/cleandb.sh index cd8bbdc..3fe5788 100755 --- a/rootfs/app/cleandb.sh +++ b/rootfs/app/cleandb.sh @@ -1,13 +1,43 @@ #!/command/with-contenv bash # shellcheck shell=bash -if [[ "${DJANGO_DATABASE_ENGINE}" == *"postgres"* ]]; then - if [[ $1 = "-v" ]]; then - PGPASSWORD="${DJANGO_DATABASE_PASSWORD}" /usr/bin/vacuumdb -f -v -h "${DJANGO_DATABASE_HOST}" -p "${DJANGO_DATABASE_PORT}" -d "${DJANGO_DATABASE_NAME}" -U "${DJANGO_DATABASE_USER}" - else - PGPASSWORD="${DJANGO_DATABASE_PASSWORD}" /usr/bin/vacuumdb -f -h "${DJANGO_DATABASE_HOST}" -p "${DJANGO_DATABASE_PORT}" -d "${DJANGO_DATABASE_NAME}" -U "${DJANGO_DATABASE_USER}" - fi -else - echo "The database engine is set to ${DJANGO_DATABASE_ENGINE}, this script only works with a Postgresql database backend." - exit +set -euo pipefail + +# Functie voor validatie van verplichte omgevingsvariabelen +validate_env_vars() { + local vars=("DJANGO_DATABASE_ENGINE" "DJANGO_DATABASE_PASSWORD" "DJANGO_DATABASE_HOST" \ + "DJANGO_DATABASE_PORT" "DJANGO_DATABASE_NAME" "DJANGO_DATABASE_USER") + for var in "${vars[@]}"; do + if [[ -z "${!var:-}" ]]; then + echo "Error: Environment variable $var is not set." + exit 1 + fi + done +} + +# Controleer of omgevingsvariabelen correct zijn ingesteld +validate_env_vars + +# Controleer of de database engine Postgresql is +if [[ "${DJANGO_DATABASE_ENGINE}" != *"postgres"* ]]; then + echo "Error: Unsupported database engine '${DJANGO_DATABASE_ENGINE}'. This script only works with a Postgresql database backend." + exit 1 fi + +# Bouw de vacuumdb-opdracht +vacuum_command=( + PGPASSWORD="${DJANGO_DATABASE_PASSWORD}" + /usr/bin/vacuumdb -f + -h "${DJANGO_DATABASE_HOST}" + -p "${DJANGO_DATABASE_PORT}" + -d "${DJANGO_DATABASE_NAME}" + -U "${DJANGO_DATABASE_USER}" +) + +# Voeg verbose-optie toe als vereist +if [[ "${1:-}" == "-v" ]]; then + vacuum_command+=("-v") +fi + +# Voer de opdracht uit +exec "${vacuum_command[@]}" From 01c06f7a643ecceddb2f7276b732a030eb32bc75 Mon Sep 17 00:00:00 2001 From: Bram van Dartel Date: Tue, 31 Dec 2024 09:30:26 +0100 Subject: [PATCH 4/8] Update cleandb.sh --- rootfs/app/cleandb.sh | 48 ++++++++----------------------------------- 1 file changed, 9 insertions(+), 39 deletions(-) diff --git a/rootfs/app/cleandb.sh b/rootfs/app/cleandb.sh index 3fe5788..cd8bbdc 100755 --- a/rootfs/app/cleandb.sh +++ b/rootfs/app/cleandb.sh @@ -1,43 +1,13 @@ #!/command/with-contenv bash # shellcheck shell=bash -set -euo pipefail - -# Functie voor validatie van verplichte omgevingsvariabelen -validate_env_vars() { - local vars=("DJANGO_DATABASE_ENGINE" "DJANGO_DATABASE_PASSWORD" "DJANGO_DATABASE_HOST" \ - "DJANGO_DATABASE_PORT" "DJANGO_DATABASE_NAME" "DJANGO_DATABASE_USER") - for var in "${vars[@]}"; do - if [[ -z "${!var:-}" ]]; then - echo "Error: Environment variable $var is not set." - exit 1 - fi - done -} - -# Controleer of omgevingsvariabelen correct zijn ingesteld -validate_env_vars - -# Controleer of de database engine Postgresql is -if [[ "${DJANGO_DATABASE_ENGINE}" != *"postgres"* ]]; then - echo "Error: Unsupported database engine '${DJANGO_DATABASE_ENGINE}'. This script only works with a Postgresql database backend." - exit 1 +if [[ "${DJANGO_DATABASE_ENGINE}" == *"postgres"* ]]; then + if [[ $1 = "-v" ]]; then + PGPASSWORD="${DJANGO_DATABASE_PASSWORD}" /usr/bin/vacuumdb -f -v -h "${DJANGO_DATABASE_HOST}" -p "${DJANGO_DATABASE_PORT}" -d "${DJANGO_DATABASE_NAME}" -U "${DJANGO_DATABASE_USER}" + else + PGPASSWORD="${DJANGO_DATABASE_PASSWORD}" /usr/bin/vacuumdb -f -h "${DJANGO_DATABASE_HOST}" -p "${DJANGO_DATABASE_PORT}" -d "${DJANGO_DATABASE_NAME}" -U "${DJANGO_DATABASE_USER}" + fi +else + echo "The database engine is set to ${DJANGO_DATABASE_ENGINE}, this script only works with a Postgresql database backend." + exit fi - -# Bouw de vacuumdb-opdracht -vacuum_command=( - PGPASSWORD="${DJANGO_DATABASE_PASSWORD}" - /usr/bin/vacuumdb -f - -h "${DJANGO_DATABASE_HOST}" - -p "${DJANGO_DATABASE_PORT}" - -d "${DJANGO_DATABASE_NAME}" - -U "${DJANGO_DATABASE_USER}" -) - -# Voeg verbose-optie toe als vereist -if [[ "${1:-}" == "-v" ]]; then - vacuum_command+=("-v") -fi - -# Voer de opdracht uit -exec "${vacuum_command[@]}" From b0fe2fe418e6f9501c9a9ecd15eba83eb05c42ca Mon Sep 17 00:00:00 2001 From: Bram van Dartel Date: Tue, 31 Dec 2024 09:30:58 +0100 Subject: [PATCH 5/8] Update build_release.yml --- .github/workflows/build_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml index deafc51..d297ede 100644 --- a/.github/workflows/build_release.yml +++ b/.github/workflows/build_release.yml @@ -24,7 +24,7 @@ concurrency: env: DOCKER_TARGET_REPO: xirixiz/dsmr-reader-docker DOCKERFILE: Dockerfile - DOCKER_TARGET_RELEASE: 2024.12.01 + DOCKER_TARGET_RELEASE: 2025.01.01 jobs: ################################################ From c254cf1a45f8184308a06f8ec1e55a815bbf3773 Mon Sep 17 00:00:00 2001 From: Bram van Dartel Date: Wed, 1 Jan 2025 10:08:15 +0100 Subject: [PATCH 6/8] Update Dockerfile --- Dockerfile | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/Dockerfile b/Dockerfile index ccf18ee..a38d4eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,21 +20,9 @@ FROM python:3.12-alpine3.21 as base # Build arguments ARG TARGETARCH ARG TARGETVARIANT -ARG S6_VERSION="3.2.0.2" -ARG QEMU_ARCH ARG DSMR_VERSION ENV DSMR_VERSION=${DSMR_VERSION} -# Dynamische architectuur voor S6-overlay -RUN case "${TARGETARCH}/${TARGETVARIANT}" in \ - "amd64/") S6_ARCH=x86_64 ;; \ - "arm64/") S6_ARCH=aarch64 ;; \ - "arm/v7") S6_ARCH=arm ;; \ - "arm/v6") S6_ARCH=armhf ;; \ - *) echo "Unsupported TARGETARCH/TARGETVARIANT: ${TARGETARCH}/${TARGETVARIANT}" && exit 1 ;; \ - esac \ - && echo "S6_ARCH=${S6_ARCH}" > /tmp/s6_arch - # Algemene omgevingsvariabelen ENV PS1="$(whoami)@dsmr_reader_docker:$(pwd)\\$ " \ TERM="xterm" \ @@ -67,14 +55,7 @@ COPY --from=staging /app /app RUN apk add --no-cache \ bash curl coreutils ca-certificates shadow jq nginx \ - openssl postgresql17-client libjpeg-turbo tzdata \ - && echo "**** install S6 overlay ****" \ - && S6_ARCH=$(cat /tmp/s6_arch) \ - && wget -q "https://github.com/just-containers/s6-overlay/releases/download/v${S6_VERSION}/s6-overlay-noarch.tar.xz" -O /tmp/s6-overlay-noarch.tar.xz \ - && wget -q "https://github.com/just-containers/s6-overlay/releases/download/v${S6_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" -O /tmp/s6-overlay-arch.tar.xz \ - && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz \ - && tar -C / -Jxpf /tmp/s6-overlay-arch.tar.xz \ - && rm -f /tmp/s6-overlay*.tar.xz /tmp/s6_arch \ + openssl postgresql17-client libjpeg-turbo tzdata s6-overlay \ && echo "**** install build dependencies and pip packages ****" \ && apk add --no-cache --virtual .build-deps \ gcc python3-dev musl-dev postgresql17-dev build-base \ From a2489022e4ac72c61f3b2be89156e1e4ed60fe15 Mon Sep 17 00:00:00 2001 From: Bram van Dartel Date: Thu, 2 Jan 2025 08:12:29 +0100 Subject: [PATCH 7/8] Update Dockerfile --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index a38d4eb..c561964 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,8 +18,6 @@ RUN apk add --no-cache curl \ FROM python:3.12-alpine3.21 as base # Build arguments -ARG TARGETARCH -ARG TARGETVARIANT ARG DSMR_VERSION ENV DSMR_VERSION=${DSMR_VERSION} From 0f9018819322f31a55913fb63356f41bc3c49290 Mon Sep 17 00:00:00 2001 From: Bram van Dartel Date: Thu, 2 Jan 2025 08:15:59 +0100 Subject: [PATCH 8/8] Update Dockerfile --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c561964..041bc9d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ #--------------------------------------------------------------------------------------------------------------------------- # STAGING STEP #--------------------------------------------------------------------------------------------------------------------------- -FROM --platform=$BUILDPLATFORM python:3.12-alpine3.21 as staging +FROM --platform=$BUILDPLATFORM python:3.11-alpine3.21 as staging WORKDIR /app ARG DSMR_VERSION @@ -15,7 +15,7 @@ RUN apk add --no-cache curl \ #--------------------------------------------------------------------------------------------------------------------------- # BASE STEP #--------------------------------------------------------------------------------------------------------------------------- -FROM python:3.12-alpine3.21 as base +FROM python:3.11-alpine3.21 as base # Build arguments ARG DSMR_VERSION