diff --git a/Dockerfile b/Dockerfile index 473edbb..a1084d8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ -FROM node:24-alpine + +FROM node:24-alpine AS builder RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories @@ -10,12 +11,27 @@ WORKDIR /app COPY package*.json ./ -RUN npm install +RUN npm ci --only=production COPY . . RUN npm run build +# 生产阶段 +FROM node:24-alpine AS production + +WORKDIR /app + +COPY --from=builder /app/node_modules ./node_modules +COPY --from=builder /app/dist ./dist +COPY --from=builder /app/package*.json ./ + +RUN addgroup -g 1001 -S nodejs +RUN adduser -S nextjs -u 1001 + +RUN chown -R nextjs:nodejs /app +USER nextjs + EXPOSE 3000 ENV NODE_ENV=production