# 构建阶段：编译 Vue 前端
FROM oven/bun:1-alpine AS builder

WORKDIR /app

# vue-tsc 需要在 Node 下运行才能解析 .vue 模块，bun 运行时会报 TS2307
RUN apk add --no-cache nodejs

# 先复制依赖清单，让依赖层可以命中缓存
COPY package.json bun.lock bunfig.toml ./
RUN bun install --frozen-lockfile

# 复制源码并构建到 dist/
COPY . .
RUN bun run build

# 运行阶段：Caddy 直接托管构建产物
FROM caddy:alpine

COPY --from=builder /app/dist /usr/share/caddy
