21 lines
860 B
Docker
21 lines
860 B
Docker
FROM oven/bun:1-alpine AS base
|
|
WORKDIR /app
|
|
|
|
# ── dev ───────────────────────────────────────────────────────────────────────
|
|
# src/ is bind-mounted at runtime; only deps are baked in.
|
|
FROM base AS dev
|
|
COPY package.json bun.lock ./
|
|
RUN bun install
|
|
EXPOSE 3000
|
|
CMD ["bun", "--hot", "src/index.ts"]
|
|
|
|
# ── prod ──────────────────────────────────────────────────────────────────────
|
|
FROM base AS prod
|
|
ENV NODE_ENV=production
|
|
COPY package.json bun.lock bunfig.toml ./
|
|
RUN bun install --frozen-lockfile
|
|
COPY src ./src
|
|
RUN mkdir -p data
|
|
EXPOSE 3000
|
|
CMD ["bun", "src/index.ts"]
|