Files
friascar/dockerfile
2024-11-25 14:22:10 -08:00

38 lines
868 B
Plaintext

# Build stage
FROM node:18-alpine AS builder
WORKDIR /app
# Copiar apenas os arquivos necessários para instalar dependências
COPY package*.json ./
RUN npm install
# Copiar o resto dos arquivos
COPY . .
# Gerar prisma client e fazer build
RUN npx prisma generate
RUN npm run build
# Production stage - imagem muito mais leve
FROM node:18-alpine
WORKDIR /app
# Copiar apenas o necessário do builder
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma
COPY --from=builder /app/node_modules/@prisma ./node_modules/@prisma
COPY --from=builder /app/package.json ./package.json
COPY --from=builder /app/public ./public
COPY --from=builder /app/prisma ./prisma
# Instalar apenas dependências de produção
RUN npm install --production
ENV NODE_ENV=production
ENV PORT=3000
EXPOSE 3000
CMD ["npm", "start"]