# 🐳 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"]