top-tran/backend/Dockerfile
Rayan Konecny 4492a12ca2 Deploy prd
2026-05-03 21:25:37 -03:00

45 lines
No EOL
766 B
Docker

# Multi-stage build - funciona para dev e prod
ARG NODE_ENV=production
# Build stage
FROM node:lts-alpine3.22 AS builder
ARG NODE_ENV
WORKDIR /app
COPY package*.json ./
# Build sempre precisa dos @types e ferramentas de compilação
RUN npm ci --include=dev
COPY . .
RUN npm run build
# Runtime stage
FROM node:lts-alpine3.22
ARG NODE_ENV
WORKDIR /app
# Copiar arquivos do builder
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/prisma ./prisma
COPY --from=builder /app/package*.json ./
# Instalar apenas dependências de produção no runtime
RUN if [ "$NODE_ENV" = "production" ]; then \
npm ci --only=production; \
else \
npm ci; \
fi
ARG PORT=4000
ENV NODE_ENV=${NODE_ENV}
ENV PORT=${PORT}
EXPOSE ${PORT}
CMD ["npm", "start"]