# Usa una imagen base oficial de Node.js 18
FROM node:18

# Instala Chromium y sus dependencias
RUN apt-get update && apt-get install -y \
    chromium \
    libxss1 \
    libasound2 \
    fonts-noto \
    --no-install-recommends \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Crea un usuario no root
RUN groupadd -r appgroup && useradd -ms /bin/bash -g appgroup appuser

# Establece el directorio de trabajo en el contenedor
WORKDIR /usr/src/app

# Copia los archivos package.json y package-lock.json
COPY package*.json ./

# Instala las dependencias del proyecto
RUN npm install

# Copia el resto del código de la aplicación
COPY . .

# Cambia la propiedad de la carpeta de trabajo
RUN chown -R appuser:appgroup /usr/src/app

# Cambia al usuario no root
USER appuser

# Establece las variables de entorno necesarias
ENV PORT=3001
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
ENV PUPPETEER_ARGS="--disable-dev-shm-usage --no-sandbox --disable-setuid-sandbox"

# Expone el puerto que la aplicación usará
EXPOSE 3001

# Comando para ejecutar la aplicación
CMD ["npm", "run", "test-pages"]
