# Cards-API: Hono + Bun, single-stage Image (Bun bundled keine # Native-Modules, kein separates Build-Stage nötig). # # Wird vom infrastructure/docker-compose.production.yml gebaut, daher # der Build-Context = Repo-Root (../ aus apps/api). FROM oven/bun:1.1-alpine WORKDIR /app # Lockfile + workspace-Skelett zuerst, damit bun den Layer cached. COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json tsconfig.base.json ./ COPY apps/api/package.json apps/api/ COPY packages/cards-domain/package.json packages/cards-domain/ # Verdaccio-Auth via Build-Arg → .npmrc. ARG NPM_AUTH_TOKEN ENV NPM_AUTH_TOKEN=${NPM_AUTH_TOKEN} COPY .npmrc ./ # pnpm via corepack — Bun-Image hat es nicht out-of-the-box. RUN apk add --no-cache nodejs npm bash \ && npm install -g pnpm@9.15.9 \ && pnpm install --frozen-lockfile --prod=false # Domain-Paket + API-Source einkopieren. COPY packages/cards-domain packages/cards-domain COPY apps/api apps/api WORKDIR /app/apps/api EXPOSE 3081 CMD ["bun", "run", "src/index.ts"]