cms: Site beim Container-Start bauen (sonst 404 auf / vor erstem Publish)

public/ ist git-ignored und fehlt im frischen Clone — Entrypoint baut die
Hugo-Site einmal aus content/. Ausserdem: Script-Output stellt klar, dass
:8000 nur das API-Gateway ist (keine Web-UI).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-05-31 11:09:25 +02:00
parent 5a66c27e02
commit 8662970fe5
3 changed files with 21 additions and 4 deletions
+2 -1
View File
@@ -33,9 +33,10 @@ WORKDIR /app
COPY api/package.json api/package-lock.json* ./
RUN npm install --omit=dev --no-audit --no-fund
COPY api/src ./src
COPY api/entrypoint.sh ./entrypoint.sh
COPY --from=admin /admin/dist ./admin-dist
ENV NODE_ENV=production
ENV ADMIN_DIR=/app/admin-dist
EXPOSE 3000
CMD ["node", "src/index.js"]
CMD ["sh", "/app/entrypoint.sh"]
+16
View File
@@ -0,0 +1,16 @@
#!/bin/sh
# Beim Container-Start die Hugo-Site einmal bauen, damit die Live-Seite (/)
# sofort steht — auch vor dem ersten Publish. public/ ist git-ignored und
# existiert im frischen Clone nicht; ohne diesen Build gäbe es 404 auf /.
set -e
SITE_DIR="${SITE_DIR:-/site}"
echo "→ Initialer Hugo-Build ($SITE_DIR → public/)…"
if hugo --source "$SITE_DIR" --destination "$SITE_DIR/public" --cleanDestinationDir; then
echo "✓ Live-Seite gebaut."
else
echo "WARN: Hugo-Build fehlgeschlagen — Live-Seite bleibt leer bis zum ersten Publish."
fi
exec node src/index.js