diff --git a/Dockerfile b/Dockerfile index a90278a..86a271c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,8 @@ -FROM node:22-alpine AS base +FROM node:22-slim AS base # ── 依赖安装层 ── FROM base AS deps WORKDIR /app -RUN apk add --no-cache openssl RUN npm install -g pnpm@9 COPY package.json pnpm-lock.yaml ./ COPY prisma ./prisma @@ -13,7 +12,6 @@ RUN pnpm exec prisma generate # ── 构建层 ── FROM base AS builder WORKDIR /app -RUN apk add --no-cache openssl RUN npm install -g pnpm@9 COPY --from=deps /app/node_modules ./node_modules COPY . . @@ -23,13 +21,12 @@ RUN pnpm build # ── 运行层 ── FROM base AS runner WORKDIR /app -RUN apk add --no-cache openssl ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 -RUN addgroup --system --gid 1001 nodejs -RUN adduser --system --uid 1001 nextjs +RUN groupadd --system --gid 1001 nodejs +RUN useradd --system --uid 1001 nextjs # 拷贝构建产物和依赖 COPY --from=builder /app/public ./public @@ -37,6 +34,7 @@ COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static COPY --from=deps /app/node_modules ./node_modules COPY --from=builder /app/prisma ./prisma + # 数据库持久化目录 RUN mkdir -p /app/prisma && chown -R nextjs:nodejs /app