Files
plantillas-proyectos/frontend/Dockerfile.prod
Galindo97 557f904af0 fix(auth): cambiar client_id de Keycloak de anexo76-frontend a hub-frontend
Anexo76 no es independiente del Hub/Workspace — comparten el mismo
cliente de Keycloak (hub-frontend). anexo76-frontend no existe en KC.

- Dockerfile.prod: agrega ARG/ENV VITE_KEYCLOAK_CLIENT_ID=hub-frontend
- workspace-auth.ts: actualiza fallback de 'anexo76-frontend' a 'hub-frontend'
- .env.example: actualiza a hub-frontend
- Jenkinsfile: pasa --build-arg VITE_KEYCLOAK_CLIENT_ID=hub-frontend al build

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 15:49:28 -05:00

80 lines
1.9 KiB
Docker

# ==========================
# Etapa de build
# ==========================
FROM node:22-alpine AS build
# Directorio de trabajo
WORKDIR /app
# Configurar npm para trabajar con certificados autofirmados e instalar pnpm
RUN npm config set strict-ssl false && \
npm install -g pnpm
# Copiar archivos de dependencias
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
# Instalar dependencias con pnpm
RUN pnpm install --frozen-lockfile
ARG VITE_API_URL
ENV VITE_API_URL=${VITE_API_URL}
ARG VITE_KEYCLOAK_URL
ENV VITE_KEYCLOAK_URL=${VITE_KEYCLOAK_URL}
ARG VITE_KEYCLOAK_CLIENT_ID=hub-frontend
ENV VITE_KEYCLOAK_CLIENT_ID=${VITE_KEYCLOAK_CLIENT_ID}
ARG INTERNAL_API_URL
ENV INTERNAL_API_URL=${INTERNAL_API_URL}
# Copiar el resto del código
COPY . .
# Construir el proyecto
RUN pnpm run build
# ==========================
# Etapa de ejecución con Node.js
# ==========================
FROM node:22-alpine AS runtime
WORKDIR /app
RUN apk add --no-cache wget
RUN npm config set strict-ssl false && \
npm install -g pnpm
# Crear usuario no-root para seguridad antes de copiar con --chown
RUN addgroup -g 1001 -S nodejs
RUN adduser -S svelte -u 1001
COPY docker-entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Copiar solo archivos necesarios para producción y aplicar propietario en la copia
COPY --from=build --chown=svelte:nodejs /app/build ./build
COPY --from=build --chown=svelte:nodejs /app/package.json ./
COPY --from=build --chown=svelte:nodejs /app/node_modules ./node_modules
USER svelte
# Puerto para SvelteKit con adapter-node
EXPOSE 5173
# Variables de entorno
ENV NODE_ENV=production
ENV PORT=5173
ENV HOST=0.0.0.0
# IMPORTANTE: Estas variables se pueden sobrescribir en docker-compose
# pero necesitamos valores por defecto para el build
ENV INTERNAL_API_URL=http://backend:8000/api/
ENTRYPOINT ["/entrypoint.sh"]
# Ejecutar aplicación con Node.js
CMD ["pnpm", "start"]