From 0e5abbbecea90384f7337a8c5ff4984b83d42abd Mon Sep 17 00:00:00 2001 From: Mondo Diaz Date: Wed, 15 Oct 2025 11:53:34 -0500 Subject: [PATCH] Add custom npm registry/proxy support for frontend builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added configurable npm registry support to enable use of custom npm proxies or private registries during Docker builds. This is essential for corporate environments, air-gapped deployments, or when using npm mirrors. **Changes:** - Dockerfile.frontend: Added NPM_REGISTRY build argument with conditional configuration - docker-compose.yml: Pass NPM_REGISTRY from environment to build args - .env.example: Added NPM_REGISTRY configuration with usage examples **Usage:** Set NPM_REGISTRY in .env file or as environment variable: - Nexus: http://nexus.company.com:8081/repository/npm-proxy/ - Artifactory: https://artifactory.company.com/artifactory/api/npm/npm-remote/ - Verdaccio: http://localhost:4873/ - Default: Leave blank for https://registry.npmjs.org/ **Example:** ```bash NPM_REGISTRY=http://your-npm-proxy:8081/repository/npm-proxy/ ./quickstart.sh ``` Defaults to official npm registry if not specified. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .env.example | 5 +++++ Dockerfile.frontend | 8 ++++++++ docker-compose.yml | 2 ++ 3 files changed, 15 insertions(+) diff --git a/.env.example b/.env.example index a132dd7..cf72db4 100644 --- a/.env.example +++ b/.env.example @@ -27,3 +27,8 @@ MINIO_SECURE=false API_HOST=0.0.0.0 API_PORT=8000 MAX_UPLOAD_SIZE=524288000 + +# NPM Configuration (for frontend build) +# Leave blank or set to https://registry.npmjs.org/ for default npm registry +# Set to your custom npm proxy/registry URL if needed (e.g., http://your-nexus-server:8081/repository/npm-proxy/) +NPM_REGISTRY= diff --git a/Dockerfile.frontend b/Dockerfile.frontend index 981c0e3..f4e6bc4 100644 --- a/Dockerfile.frontend +++ b/Dockerfile.frontend @@ -1,11 +1,19 @@ # Multi-stage build for Angular frontend FROM node:24-alpine AS build +# Accept npm registry as build argument +ARG NPM_REGISTRY=https://registry.npmjs.org/ + WORKDIR /app # Copy package files COPY frontend/package*.json ./ +# Configure npm registry if custom one is provided +RUN if [ "$NPM_REGISTRY" != "https://registry.npmjs.org/" ]; then \ + npm config set registry "$NPM_REGISTRY"; \ + fi + # Install dependencies RUN npm ci diff --git a/docker-compose.yml b/docker-compose.yml index 0c92e60..a5c9885 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -61,6 +61,8 @@ services: build: context: . dockerfile: Dockerfile.frontend + args: + NPM_REGISTRY: ${NPM_REGISTRY:-https://registry.npmjs.org/} ports: - "80:80" depends_on: