# syntax=docker/dockerfile:1

ARG BUN_VERSION=1.2.20

FROM oven/bun:${BUN_VERSION} AS base
WORKDIR /app

FROM base AS deps
COPY package.json bun.lock ./
RUN bun install --production --no-cache

FROM base AS build
COPY package.json bun.lock ./
RUN bun install --no-cache
COPY tsconfig.json ./
COPY src ./src
RUN bun run build

FROM base AS runner
ENV NODE_ENV=production
USER bun
WORKDIR /app
COPY --link --from=deps /app/node_modules ./node_modules
COPY --link --from=build /app/dist ./dist
COPY package.json ./
EXPOSE 3000
CMD ["bun", "run", "dist/app.js"]
