File: //var/www/api-management/Dockerfile.staging
# Usa la imagen oficial de Node.js como base para la construcción
FROM node:20.9.0 AS build
# Define el directorio de trabajo en el contenedor
WORKDIR /app
# Copia el package.json y el package-lock.json
COPY package*.json ./
# Instala las dependencias usando npm ci
# RUN npm install -g npm@10.8.3
# Copia el resto de la aplicación
COPY . .
# Construye la aplicación para el entorno de producción
RUN npx cross-env NODE_ENV=staging nest build
# Verifica que el archivo main.js se haya creado
RUN ls -la /app/dist
# Usa una imagen ligera de Node.js para la etapa final
FROM node:20.9.0 AS runtime
# Define el directorio de trabajo en el contenedor
WORKDIR /app
# Copia solo los archivos necesarios desde la etapa de construcción
COPY --from=build /app/dist /app/dist
COPY --from=build /app/node_modules /app/node_modules
COPY --from=build /app/package*.json /app/
# Expone el puerto en el que tu aplicación está corriendo
EXPOSE 3000
# Establece el comando de entrada para iniciar la aplicación
CMD [ "node", "dist/main" ]