fb54f22e0c
- App-Image wird jetzt aus Gitea-Container-Registry gepullt (git.kgva.ch/karim/rapport-app:main) — kein lokaler Build mehr noetig. build:-Section bleibt fuer Dev-Workflow. - DB-Port nur noch auf 127.0.0.1 gebunden — kein direkter LAN-Zugriff zur Postgres mehr (Kong-Proxy ist der einzige Weg). - DB-Healthcheck: start_period 30s + 20 retries — Migrations + Schema-Init brauchen beim Erst-Start laenger als 50s. - Realtime: DB_AFTER_CONNECT_QUERY zeigt jetzt auf 'realtime' (ohne Underscore). - App-Image-HEALTHCHECK: wget http://127.0.0.1/ statt localhost (IPv6-Fall). - Init-Setup: zz-rapport-post-init.sh statt 00-init.sh, plus rapport-migrations als separater Mount unter /rapport-migrations.
34 lines
1.4 KiB
Docker
34 lines
1.4 KiB
Docker
# Multi-Stage Build für das Rapport-Frontend.
|
|
# Holt die App-Sources via git, baut sie mit Node, packt das fertige dist/
|
|
# in einen schlanken nginx-Container.
|
|
#
|
|
# Steuerung über Build-Args:
|
|
# --build-arg RAPPORT_APP_TAG=0.8.2 Version aus dem App-Repo
|
|
# --build-arg SUPABASE_URL=https://... Public-API-URL (kommt in den Build)
|
|
# --build-arg SUPABASE_ANON_KEY=... Public Anon-Key (kommt in den Build)
|
|
|
|
FROM node:20-alpine AS builder
|
|
ARG RAPPORT_APP_TAG=main
|
|
ARG SUPABASE_URL
|
|
ARG SUPABASE_ANON_KEY
|
|
ARG REPO_URL=https://git.kgva.ch/karim/RAPPORT.git
|
|
|
|
RUN apk add --no-cache git
|
|
WORKDIR /build
|
|
RUN git clone --branch "${RAPPORT_APP_TAG}" --depth 1 "${REPO_URL}" app
|
|
WORKDIR /build/app
|
|
|
|
# .env.production wird zur Build-Zeit ausgewertet → Werte landen im Bundle
|
|
RUN if [ -n "$SUPABASE_URL" ]; then \
|
|
printf "VITE_SUPABASE_URL=%s\nVITE_SUPABASE_ANON_KEY=%s\n" "$SUPABASE_URL" "$SUPABASE_ANON_KEY" > .env.production; \
|
|
fi
|
|
|
|
RUN npm install --no-audit --no-fund && npm run build
|
|
|
|
# ──────────────────────────────────────────────────────────
|
|
FROM nginx:alpine
|
|
COPY --from=builder /build/app/dist /usr/share/nginx/html
|
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|
EXPOSE 80
|
|
HEALTHCHECK --interval=30s --timeout=3s CMD wget -q --spider http://127.0.0.1/ || exit 1
|