Dockerfile 705 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # ---------- base ----------
  2. FROM node:20-alpine AS base
  3. WORKDIR /app
  4. RUN npm install -g pnpm
  5. # ---------- deps ----------
  6. FROM base AS deps
  7. COPY package.json pnpm-lock.yaml* ./
  8. RUN pnpm install --no-frozen-lockfile
  9. # ---------- builder ----------
  10. FROM base AS builder
  11. ARG VITE_API_BASE_URL
  12. ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
  13. COPY --from=deps /app/node_modules ./node_modules
  14. COPY . .
  15. RUN pnpm build
  16. # ---------- runner ----------
  17. FROM node:20-alpine AS runner
  18. WORKDIR /app
  19. ENV NODE_ENV=production
  20. RUN npm install -g serve
  21. COPY --from=builder /app/dist ./dist
  22. RUN addgroup -S nodejs && adduser -S reactjs -G nodejs
  23. USER reactjs
  24. EXPOSE 3001
  25. CMD ["serve", "-s", "dist", "-l", "3001"]