seepuls/apps/landing/Dockerfile
Till JS a53b945e5d
Some checks are pending
CI / validate (push) Waiting to run
feat(landing): Deploy-Stack + Cutover auf seepuls.com LIVE
Marketing-Astro-Container (:3203), gebaut mit @mana/marketing-kit
0.1.0. Welle-1-Cutover als Trust-Anker (Aggregator mit Regeln nach
AGGREGATOR_POLICY); /fuer-veranstalter als Trust+Compliance-Page
mit Take-Down-Pfad und Code-Verweis (Sitemap-Priorität 0.9).

- apps/landing/Dockerfile — wordeck-Pattern, BuildKit npm_token
- apps/landing/infrastructure/nginx.conf — Astro statisch
- apps/landing/infrastructure/macmini/docker-compose.landing.yml — Port 3203
- apps/landing/package.json — marketing-kit 0.1.0-alpha.2 → 0.1.0
- .gitignore += .astro

Cutover-Playbook: mana/docs/playbooks/LANDING_CUTOVER.md
Domain-Status:
  seepuls.com          → :3203  (Marketing, NEU)
  www.seepuls.com      → :3203  (Marketing, NEU)
  app.seepuls.com      → :3096  (Astro-App, NEU als Subdomain)
  api.seepuls.com      → :3095  (API, unverändert)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 21:39:18 +02:00

30 lines
1.1 KiB
Docker

# Multi-stage build for the seepuls-landing Astro surface.
#
# Build context is the repo root (set in
# infrastructure/macmini/docker-compose.landing.yml as `../..`).
#
# NPM_AUTH_TOKEN is required at build time (BuildKit secret) so pnpm
# can fetch @mana/marketing-kit from npm.mana.how (Verdaccio).
FROM node:20-alpine AS builder
WORKDIR /repo
RUN corepack enable && corepack prepare pnpm@9.15.9 --activate
COPY package.json pnpm-workspace.yaml pnpm-lock.yaml .npmrc ./
COPY apps/landing/package.json ./apps/landing/
RUN --mount=type=secret,id=npm_token,env=NPM_AUTH_TOKEN \
pnpm install --filter @seepuls/landing --frozen-lockfile 2>/dev/null \
|| pnpm install --filter @seepuls/landing
COPY apps/landing ./apps/landing
WORKDIR /repo/apps/landing
RUN pnpm build
FROM nginx:1.27-alpine AS production
COPY --from=builder /repo/apps/landing/dist /usr/share/nginx/html
COPY apps/landing/infrastructure/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
CMD wget -qO- http://127.0.0.1/ >/dev/null 2>&1 || exit 1