feat(version): /api/version + build-time version/commit stamping
Add a VERSION file (0.1.0) and inject APP_VERSION/GIT_SHA/BUILD_DATE as Docker build-args (both stages; Vite inlines them into the SPA). New public GET /api/version returns app_version, git_sha, build_date and the Alembic head as the database revision. deploy.sh and the localdev build pass the args.
This commit is contained in:
parent
5dd3109286
commit
a93ab30fb2
7 changed files with 56 additions and 2 deletions
18
Dockerfile
18
Dockerfile
|
|
@ -1,5 +1,15 @@
|
|||
# Build/version info, injected via --build-arg (defaults keep un-built/dev runs working).
|
||||
ARG APP_VERSION=dev
|
||||
ARG GIT_SHA=unknown
|
||||
ARG BUILD_DATE=
|
||||
|
||||
# Stage 1: build the frontend SPA
|
||||
FROM node:20-alpine AS frontend
|
||||
ARG APP_VERSION
|
||||
ARG GIT_SHA
|
||||
ARG BUILD_DATE
|
||||
# Vite inlines VITE_*-prefixed env into the bundle at build time.
|
||||
ENV VITE_APP_VERSION=$APP_VERSION VITE_GIT_SHA=$GIT_SHA VITE_BUILD_DATE=$BUILD_DATE
|
||||
WORKDIR /fe
|
||||
COPY frontend/package.json ./
|
||||
RUN npm install
|
||||
|
|
@ -8,10 +18,16 @@ RUN npm run build
|
|||
|
||||
# Stage 2: backend runtime, serving the built SPA
|
||||
FROM python:3.12-slim
|
||||
ARG APP_VERSION
|
||||
ARG GIT_SHA
|
||||
ARG BUILD_DATE
|
||||
ENV PYTHONDONTWRITEBYTECODE=1 \
|
||||
PYTHONUNBUFFERED=1 \
|
||||
PIP_NO_CACHE_DIR=1 \
|
||||
PIP_DISABLE_PIP_VERSION_CHECK=1
|
||||
PIP_DISABLE_PIP_VERSION_CHECK=1 \
|
||||
APP_VERSION=$APP_VERSION \
|
||||
GIT_SHA=$GIT_SHA \
|
||||
BUILD_DATE=$BUILD_DATE
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue