edumanagerpro2/manager/Dockerfile

39 lines
875 B
Docker

# ---- Build Stage ----
FROM node:22-alpine AS builder
WORKDIR /app
# Copiar package files e instalar dependências
COPY package.json ./
RUN npm install
# Copiar todo o código fonte
COPY . .
# Build da aplicação (gera a pasta /app/dist)
# Aumentamos a RAM para evitar crashs do Vite via QEMU ARM64
ENV NODE_OPTIONS="--max-old-space-size=4096"
RUN npm run build
# ---- Production Stage ----
FROM node:22-alpine AS production
WORKDIR /app
# Copiar package files e instalar apenas dependências de produção
COPY package.json ./
RUN npm install --omit=dev
# Copiar o servidor Express e pastas necessárias
COPY server.selfhosted.js ./server.js
COPY services ./services
# Copiar a pasta dist gerada no build
COPY --from=builder /app/dist ./dist
# Expor a porta do servidor
EXPOSE 3000
# Comando para iniciar o servidor em modo produção
CMD ["node", "server.js"]