> ## Documentation Index
> Fetch the complete documentation index at: https://docs.erixcel.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dockerfile

> Configuración Docker de dos etapas para construir y ejecutar NestJS.

Usa una etapa de compilación con todas las dependencias y otra de ejecución con dependencias de producción.

```dockerfile Dockerfile theme={null}
# Etapa de construcción
FROM node:20-alpine AS builder

WORKDIR /app

# Copiar archivos de dependencias
COPY package*.json ./

# Instalar dependencias
RUN npm ci

# Copiar archivos de configuración necesarios para el build
COPY tsconfig*.json ./
COPY nest-cli.json ./

# Copiar código fuente
COPY src ./src

# Construir la aplicación
RUN npm run build

# Verificar que dist existe
RUN ls -la dist/

# Etapa de producción
FROM node:20-alpine

WORKDIR /app

# Copiar archivos de dependencias
COPY package*.json ./

# Instalar solo dependencias de producción
RUN npm ci --omit=dev

# Copiar la aplicación construida desde la etapa de builder
COPY --from=builder /app/dist ./dist

# Verificar archivos copiados
RUN ls -la dist/

# Exponer el puerto
EXPOSE 3000

# Comando para iniciar la aplicación
CMD ["node", "dist/main.js"]
```

**Ten en cuenta:** el archivo debe llamarse `Dockerfile` y estar en la raíz. La ruta `dist/main.js` depende de la salida de compilación de tu proyecto. Si utilizas archivos adicionales durante el build (por ejemplo, configuraciones de rutas o archivos generadores), tendrás que copiarlos también.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.