返回 AiToEarn
Dockerfile
根目录 / project / aitoearn-web / Dockerfile
1 FROM node:lts-alpine AS base
2 ENV NEXT_TELEMETRY_DISABLED=1
3 ENV NODE_ENV=production
4
5 RUN apk add --no-cache libc6-compat
6
7 RUN corepack enable pnpm && corepack prepare pnpm@latest --activate
8
9 WORKDIR /app
10
11 FROM base AS deps
12
13 COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
14
15 RUN pnpm install --frozen-lockfile --prod=false
16
17 FROM base AS builder
18 WORKDIR /app
19
20 COPY --from=deps /app/node_modules ./node_modules
21 COPY . .
22
23 RUN pnpm build
24
25 FROM base AS production
26 WORKDIR /app
27
28 ENV NODE_ENV=production
29 ENV NEXT_TELEMETRY_DISABLED=1
30
31 RUN addgroup --system --gid 1001 nodejs
32 RUN adduser --system --uid 1001 nextjs
33
34 COPY --from=builder /app/public ./public
35
36 RUN mkdir .next
37 RUN chown nextjs:nodejs .next
38
39 COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
40 COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
41
42 USER nextjs
43
44 ENV PORT=3000
45 ENV HOSTNAME="0.0.0.0"
46
47 CMD ["node", "server.js"]
48
48 lines Plain Text