28 lines
658 B
Docker
28 lines
658 B
Docker
# ----- ETAPA 1: Compilación (Build) -----
|
|
FROM node:20-alpine AS build
|
|
|
|
WORKDIR /app
|
|
|
|
# Copiamos solo los archivos de dependencias para aprovechar la caché de Docker
|
|
COPY package*.json ./
|
|
|
|
# Instalamos dependencias
|
|
RUN npm install
|
|
|
|
# Copiamos el resto de los archivos del proyecto
|
|
COPY . .
|
|
|
|
# Compilamos el proyecto (esto genera la carpeta /app/dist)
|
|
RUN npm run build
|
|
|
|
|
|
# ----- ETAPA 2: Servidor Web (Nginx) -----
|
|
FROM nginx:alpine
|
|
|
|
# Copiamos los archivos compilados de la etapa anterior a la carpeta pública de Nginx
|
|
COPY --from=build /app/dist /usr/share/nginx/html
|
|
|
|
# Exponemos el puerto 80 por defecto
|
|
EXPOSE 80
|
|
|
|
CMD ["nginx", "-g", "daemon off;"]
|