# 🐳 Dockerfile - Liberi Kids Sistema de Estoque

# Usar imagem oficial do Node.js 18 Alpine (menor tamanho)
FROM node:18-alpine

# Definir diretório de trabalho
WORKDIR /app

# Instalar dependências do sistema (se necessário)
RUN apk add --no-cache \
    python3 \
    make \
    g++

# Copiar arquivos de dependências do servidor
COPY package*.json ./

# Instalar dependências do servidor
RUN npm ci --only=production

# Copiar código do servidor
COPY server-supabase.js ./
COPY sql/ ./sql/

# Copiar arquivos do frontend
COPY client/package*.json ./client/
WORKDIR /app/client

# Instalar dependências do frontend
RUN npm ci --only=production

# Copiar código do frontend
COPY client/src/ ./src/
COPY client/public/ ./public/

# Fazer build do frontend
RUN npm run build

# Voltar para diretório raiz
WORKDIR /app

# Criar usuário não-root para segurança
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001

# Mudar ownership dos arquivos
RUN chown -R nextjs:nodejs /app
USER nextjs

# Expor porta
EXPOSE 5000

# Definir variáveis de ambiente padrão
ENV NODE_ENV=production
ENV PORT=5000

# Comando de inicialização
CMD ["node", "server-supabase.js"]
