# Etapa de construção do frontend
FROM node:20-alpine AS builder

WORKDIR /app

# Copia os arquivos de configuração primeiro
COPY package*.json ./

# Instala as dependências
RUN npm install

# Copia o restante do código fonte
COPY . .

# Build da aplicação React
RUN npm run build

# Etapa de produção
FROM node:20-alpine AS runner

WORKDIR /app

# Copia apenas os arquivos necessários
COPY package*.json ./

# Instala apenas dependências de produção
RUN npm install --production

# Copia os arquivos do servidor
COPY --from=builder /app/addon ./addon

# Copia os arquivos buildados do React
COPY --from=builder /app/dist ./dist

# Copia a pasta public com as imagens
COPY --from=builder /app/public ./public

# Exposição da porta
EXPOSE 1337

# Comando para iniciar o servidor
ENTRYPOINT ["node", "addon/server.js"] 