27 lines
709 B
Docker
27 lines
709 B
Docker
# --------------- 构建阶段 ---------------
|
|
FROM node:22-alpine AS builder
|
|
ARG PNPM_STORE_PATH=/root/.local/share/pnpm/store
|
|
ENV BETTER_AUTH_SECRET=any-random-string-123456
|
|
|
|
RUN corepack enable && corepack install -g pnpm@10.26.2
|
|
RUN pnpm config set store-dir ${PNPM_STORE_PATH}
|
|
|
|
WORKDIR /app
|
|
|
|
COPY frontend/ .
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
RUN pnpm build
|
|
|
|
# --------------- 运行阶段(最小镜像) ---------------
|
|
FROM node:22-alpine AS runner
|
|
ENV NODE_ENV=production
|
|
|
|
WORKDIR /app
|
|
COPY --from=builder /app/next.config.js ./
|
|
COPY --from=builder /app/.next ./.next
|
|
COPY --from=builder /app/node_modules ./node_modules
|
|
COPY --from=builder /app/package.json ./
|
|
|
|
EXPOSE 3000
|
|
CMD ["pnpm", "start"] |