# Usar imagem oficial do Node.js
FROM node:18-alpine
# Instalar dependências do sistema
RUN apk add --no-cache git
# Definir diretório de trabalho
WORKDIR /app
# Copiar arquivos de dependências primeiro (para cache)
COPY package*.json ./
# Instalar todas as dependências (incluindo devDependencies para build)
RUN npm ci
# Copiar código fonte
COPY . .
# Compilar TypeScript
RUN npm run build
# Remover devDependencies após build
RUN npm prune --production
# Expor porta
EXPOSE 3000
# Definir variáveis de ambiente
ENV NODE_ENV=production
ENV PORT=3000
# Criar usuário não-root
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nodejs -u 1001
USER nodejs
# Comando para iniciar o servidor HTTP
CMD ["npm", "run", "start:server"]