syntaxai/tdd.md · main · Containerfile
# 100% Bun-native container voor de tdd.md homepage.
# Multi-stage: install deps eenmaal, kopieer alleen runtime files naar de
# uiteindelijke image. Output is klein (Bun + alpine + sources).
FROM docker.io/oven/bun:1-alpine AS deps
WORKDIR /app
COPY package.json bun.lock ./
RUN bun install --frozen-lockfile --production
FROM docker.io/oven/bun:1-alpine AS runtime
# git is needed by the judge module (clone agent repos, walk commits via
# `git log`/`checkout`).
RUN apk add --no-cache git
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY package.json bun.lock tsconfig.json sama.profile.toml CONTRIBUTING.md ./
COPY src ./src
COPY content ./content
COPY goals ./goals
COPY public ./public
COPY tools ./tools
ENV PORT=3000
EXPOSE 3000
# No HEALTHCHECK — podman's OCI builds drop it with a warning, and our
# external probes (cloudflared upstream + the deploy script's /healthz
# poll) already cover liveness.
CMD ["bun", "src/d11_server.ts"]