30 lines
561 B
Docker
30 lines
561 B
Docker
FROM oven/bun:1.2.19-alpine AS base
|
|
|
|
# 依赖缓存阶段
|
|
FROM base AS dep
|
|
WORKDIR /app
|
|
|
|
COPY package.json bun.lock ./
|
|
RUN bun install --frozen-lockfile --registry https://registry.npmmirror.com
|
|
|
|
# 构建阶段
|
|
FROM base AS build
|
|
WORKDIR /app
|
|
|
|
COPY --from=dep /app/node_modules ./node_modules
|
|
COPY . .
|
|
|
|
RUN bun run build
|
|
|
|
# 生产阶段
|
|
FROM base AS run
|
|
WORKDIR /app
|
|
|
|
COPY --from=build /app/.next/standalone ./
|
|
COPY --from=build /app/.next/static ./.next/static
|
|
COPY --from=build /app/public ./public
|
|
|
|
USER bun
|
|
EXPOSE 3000/tcp
|
|
ENTRYPOINT [ "bun", "server.js" ]
|