From a80df670be4d23e908fc7410bcf48dc2ad10dbc4 Mon Sep 17 00:00:00 2001 From: bruno Date: Mon, 27 Jul 2026 17:17:47 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20version=20Docker=20=E2=80=94=20g=C3=A9n?= =?UTF-8?q?=C3=A9rer=20VERSION=20file=20depuis=20.git/HEAD=20au=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Dockerfile: COPY .git/HEAD + .git/refs/ → génère backend/VERSION avec hash - version.py: fallback lit backend/VERSION (à côté du module, pas racine repo) - Format: 1.8.0-0-g<8-char-hash> ou 1.8.0-dev si indisponible --- Dockerfile | 16 ++++++++++++++++ backend/version.py | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7319eac..49d412e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,6 +31,22 @@ RUN apt-get update \ COPY backend/ ./backend/ COPY frontend/ ./frontend/ +# Generate VERSION file from git (fallback for version.py when .git is not available) +COPY .git/HEAD .git/refs/ /tmp/git-refs/ +RUN cd /tmp/git-refs && \ + if [ -f HEAD ]; then \ + REF=$(cat HEAD | awk '{print $2}'); \ + if [ -f "$REF" ]; then \ + HASH=$(cat "$REF" | head -c 8); \ + echo "1.8.0-0-g${HASH}" > /app/backend/VERSION; \ + else \ + echo "1.8.0-dev" > /app/backend/VERSION; \ + fi; \ + else \ + echo "1.8.0-dev" > /app/backend/VERSION; \ + fi && \ + rm -rf /tmp/git-refs + # Create non-root user for security + data directory for auth persistence # Using explicit UID/GID 1000 to match common host user and docker-compose settings RUN groupadd -g 1000 obsigate && useradd -u 1000 -g obsigate -d /app -s /sbin/nologin obsigate \ diff --git a/backend/version.py b/backend/version.py index eddf40d..0fcfc67 100644 --- a/backend/version.py +++ b/backend/version.py @@ -37,8 +37,8 @@ def get_version() -> str: except (FileNotFoundError, subprocess.TimeoutExpired, OSError): pass - # Fallback: try reading from a VERSION file - version_file = _ROOT / "VERSION" + # Fallback: try reading from a VERSION file next to this module + version_file = Path(__file__).parent / "VERSION" if version_file.exists(): return version_file.read_text().strip()