# ---------------------------- # STAGE 1: BUILD DO PROJETO # ---------------------------- FROM node:20-alpine AS build # Define o diretório de trabalho customizado WORKDIR /var/app/usr/astro # Copia apenas arquivos de dependência inicialmente (para cache) COPY package*.json ./ # Instala as dependências do projeto RUN npm install # Copia todo o restante do projeto para o diretório COPY . . # Executa o build do Astro RUN npm run build # ---------------------------- # STAGE 2: PRODUÇÃO # ---------------------------- FROM node:20-alpine AS production # Define o mesmo caminho de trabalho WORKDIR /var/app/usr/astro # Instala servidor estático global RUN npm install -g serve # Copia os arquivos do build da imagem anterior COPY --from=build /var/app/usr/astro/dist ./dist # Expõe a porta 3000 (ou outra se quiser mudar depois) EXPOSE 3000 # Comando para servir os arquivos da pasta dist CMD ["serve", "dist", "-l", "3000"]