Files
Mercados-Web/frontend/Dockerfile

28 lines
882 B
Docker
Raw Normal View History

# --- Etapa 1: Build ---
# Usamos una imagen ligera de Node.js para instalar dependencias y compilar el frontend
FROM node:20-alpine AS build
WORKDIR /app
# Copiamos package.json y package-lock.json para cachear las dependencias
COPY package*.json ./
RUN npm install
# Copiamos el resto del código del frontend
COPY . .
# Ejecutamos el script de build de Vite
RUN npm run build
# --- Etapa 2: Producción ---
# Usamos la imagen oficial de Nginx, que es muy pequeña y eficiente
FROM nginx:1.25-alpine
# Copiamos los archivos estáticos generados en la etapa de build
# a la carpeta que Nginx sirve por defecto.
COPY --from=build /app/dist /usr/share/nginx/html
# Nginx ya está configurado para escuchar en el puerto 80 por defecto.
# Simplemente lo exponemos.
EXPOSE 80
# El comando por defecto de la imagen de Nginx ya inicia el servidor.
CMD ["nginx", "-g", "daemon off;"]