Files
RAPPORT-STACK/Dockerfile.host
T
karim 6e33a44992 fix(Dockerfile.host): npm install NACH Code-COPY
COPY server ./server überschrieb das zuvor erzeugte node_modules → express
fehlte, host crashte. Jetzt: Code kopieren, dann installieren.

Container verifiziert: Migrationen laufen beim Start, alle Seiten + Assets
(css/js/font) + API liefern 200, E2E (register→checkout→admin-stats) ok.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 14:19:35 +02:00

32 lines
1.4 KiB
Docker

# RAPPORT-HOST-Image — bündelt das Node-Backend MIT der gebauten Hugo-Website.
# Haupt-Build-Kontext: RAPPORT-HOST. Zusatz-Kontext `website`: RAPPORT-WEBSITE.
# ── Stage 1: Hugo-Website bauen ──────────────────────────────────────────────
FROM hugomods/hugo:exts AS web
WORKDIR /src
COPY --from=website . /src
# Frisch bauen (alte public/resources ignorieren), Ausgabe nach /public.
RUN rm -rf public resources && hugo --gc --baseURL / --destination /public
# ── Stage 2: Node-Backend ────────────────────────────────────────────────────
FROM node:20-alpine
WORKDIR /app
# Backend-Code zuerst, DANN installieren — sonst überschreibt der COPY das
# frisch erzeugte node_modules wieder (war der Fehler: express not found).
COPY server ./server
COPY package.json ./
RUN cd server && npm install --omit=dev --no-audit --no-fund
# Gebaute Website aus Stage 1.
COPY --from=web /public ./website-public
# Das Backend liest WEBSITE_PUBLIC_DIR; hier auf die gebündelte Website zeigen.
ENV WEBSITE_PUBLIC_DIR=/app/website-public
ENV PORT=8787
EXPOSE 8787
# Beim Start: HOST-Schema migrieren, dann Server. (host-db ist via compose
# depends_on healthy.)
CMD ["sh", "-c", "node server/migrate.js && node server/index.js"]