FROM oven/bun:1-alpine AS deps
WORKDIR /app

COPY package.json bun.lockb* bun.lock* ./

RUN if [ -f bun.lockb ] || [ -f bun.lock ]; then \
      bun install --ci --frozen-lockfile --production; \
    else \
      bun install --ci --production; \
    fi

FROM oven/bun:1-alpine AS runner
WORKDIR /app

ENV NODE_ENV=production
ENV PORT=3000

COPY --from=deps /app/node_modules ./node_modules

COPY . .

USER bun
EXPOSE 3000

CMD ["bun", "run", "start"]
