40 lines
944 B
Text
40 lines
944 B
Text
|
|
# ----------------------------
|
||
|
|
# 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"]
|