42 lines
923 B
Docker
42 lines
923 B
Docker
# Frontend Dockerfile (reutilizable para client e internal)
|
|
FROM node:18-alpine
|
|
|
|
# Instalar dependencias del sistema
|
|
RUN apk add --no-cache \
|
|
git \
|
|
curl
|
|
|
|
# Configurar directorio de trabajo
|
|
WORKDIR /app
|
|
|
|
# Crear usuario no root
|
|
RUN addgroup -g 1001 -S nodejs \
|
|
&& adduser -S app -u 1001 -G nodejs
|
|
|
|
# Copiar package files
|
|
COPY package*.json ./
|
|
|
|
# Configurar npm para ignorar certificados SSL (solo para desarrollo)
|
|
RUN npm config set strict-ssl false
|
|
|
|
# Instalar dependencias
|
|
RUN npm install --legacy-peer-deps && npm cache clean --force
|
|
|
|
# Copiar código de la aplicación
|
|
COPY . .
|
|
|
|
# Cambiar permisos
|
|
RUN chown -R app:nodejs /app
|
|
|
|
# Cambiar a usuario no root
|
|
USER app
|
|
|
|
# Exponer puerto
|
|
EXPOSE 3000
|
|
|
|
# Health check
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
|
|
CMD curl -f http://localhost:3000 || exit 1
|
|
|
|
# Comando por defecto
|
|
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"] |