# 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"]