salix-front/Dockerfile.e2e

59 lines
1.5 KiB
Docker

# Etapa 1: Construcción de dependencias
FROM node:lts-bookworm AS builder
# Configurar PNPM
ENV SHELL=/bin/bash
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN npm install -g pnpm@8.15.1 && \
pnpm setup
# Actualizar e instalar paquetes necesarios
RUN apt-get -y --fix-missing update && \
apt-get -y --fix-missing upgrade && \
apt-get -y --no-install-recommends install \
apt-utils \
libgtk2.0-0 \
libgtk-3-0 \
libgbm-dev \
libnotify-dev \
libnss3 \
libxss1 \
libasound2 \
libxtst6 \
xauth \
xvfb \
chromium \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Establecer directorio de trabajo
WORKDIR /app
# Copiar archivos de configuración primero
COPY package.json .npmrc pnpm-lock.yaml ./
# Verificar si node_modules existe en el contexto
COPY node_modules ./node_modules
# Instalar dependencias (solo si node_modules no está disponible)
RUN if [ ! -d "node_modules" ]; then \
pnpm install --frozen-lockfile; \
fi
# Copiar dependencias desde la etapa de construcción
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/test/cypress ./test/cypress
COPY --from=builder /app/jsconfig.json ./jsconfig.json
COPY --from=builder /app/quasar.extensions.json ./quasar.extensions.json
COPY --from=builder /app/postcss.config.js ./postcss.config.js
COPY --from=builder /app/cypress.config.js ./cypress.config.js
# Configuración de Cypress
ENV CYPRESS_BROWSER=chrome
ENV CHROME_BIN=/usr/bin/chromium
# Comando por defecto
CMD ["npx", "cypress", "run"]