From 4feb9fe33701a59d487fe148daba19070ccbe93f Mon Sep 17 00:00:00 2001 From: pratik Date: Wed, 15 Oct 2025 15:31:07 -0500 Subject: [PATCH] Simplify Docker build and pin dependencies for Artifactory compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove npm registry build arguments from Dockerfile - Use npm install to leverage host machine's npm config - Pin vite (6.3.6), rollup (4.50.2), and undici-types (7.12.0) - Remove all .npmrc files from repo (use machine-level config) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- Dockerfile | 18 +++++------------- frontend/.npmrc | 1 - frontend/.npmrc.artifactory | 11 ----------- frontend/.npmrc.public | 1 - frontend/package.json | 10 +++++++--- 5 files changed, 12 insertions(+), 29 deletions(-) delete mode 100644 frontend/.npmrc delete mode 100644 frontend/.npmrc.artifactory delete mode 100644 frontend/.npmrc.public diff --git a/Dockerfile b/Dockerfile index efe207b..65b8adb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,26 +1,18 @@ # Multi-stage build: First stage builds Angular frontend FROM node:18-alpine as frontend-builder -# Build argument to select npm registry (public or artifactory) -ARG NPM_REGISTRY=public -ARG ARTIFACTORY_AUTH_TOKEN="" - # Install dependencies for native modules RUN apk add --no-cache python3 make g++ WORKDIR /frontend -# Copy package files and registry configs +# Copy package files COPY frontend/package*.json ./ -COPY frontend/.npmrc.${NPM_REGISTRY} ./.npmrc -# If using artifactory and auth token is provided, configure it -RUN if [ "$NPM_REGISTRY" = "artifactory" ] && [ -n "$ARTIFACTORY_AUTH_TOKEN" ]; then \ - echo "Configuring Artifactory authentication..."; \ - fi - -# Clean install dependencies -RUN npm ci --force +# Install dependencies using npm install +# This will use the Docker build environment's npm configuration (.npmrc) +# and generate a package-lock.json appropriate for the configured registry +RUN npm install --legacy-peer-deps # Copy frontend source COPY frontend/src ./src diff --git a/frontend/.npmrc b/frontend/.npmrc deleted file mode 100644 index 214c29d..0000000 --- a/frontend/.npmrc +++ /dev/null @@ -1 +0,0 @@ -registry=https://registry.npmjs.org/ diff --git a/frontend/.npmrc.artifactory b/frontend/.npmrc.artifactory deleted file mode 100644 index 58cb008..0000000 --- a/frontend/.npmrc.artifactory +++ /dev/null @@ -1,11 +0,0 @@ -# Replace YOUR_ARTIFACTORY_URL with your actual Artifactory URL -registry=https://YOUR_ARTIFACTORY_URL/artifactory/api/npm/npm-virtual/ - -# If authentication is required, uncomment and configure: -# //YOUR_ARTIFACTORY_URL/artifactory/api/npm/npm-virtual/:_auth=${ARTIFACTORY_AUTH_TOKEN} -# //YOUR_ARTIFACTORY_URL/artifactory/api/npm/npm-virtual/:always-auth=true - -# Alternative: username/password (less secure, not recommended) -# //YOUR_ARTIFACTORY_URL/artifactory/api/npm/npm-virtual/:username=${ARTIFACTORY_USERNAME} -# //YOUR_ARTIFACTORY_URL/artifactory/api/npm/npm-virtual/:_password=${ARTIFACTORY_PASSWORD} -# //YOUR_ARTIFACTORY_URL/artifactory/api/npm/npm-virtual/:email=your-email@company.com diff --git a/frontend/.npmrc.public b/frontend/.npmrc.public deleted file mode 100644 index 214c29d..0000000 --- a/frontend/.npmrc.public +++ /dev/null @@ -1 +0,0 @@ -registry=https://registry.npmjs.org/ diff --git a/frontend/package.json b/frontend/package.json index 15a493a..d3f1210 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -30,6 +30,7 @@ "@angular/cli": "^19.2.17", "@angular/compiler-cli": "^19.2.0", "@types/jasmine": "~5.1.0", + "@types/node": "22.10.5", "jasmine-core": "~5.6.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", @@ -38,14 +39,17 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.7.2", "vite": "6.3.6", - "rollup": "4.50.2" + "rollup": "4.50.2", + "undici-types": "7.12.0" }, "resolutions": { "vite": "6.3.6", - "rollup": "4.50.2" + "rollup": "4.50.2", + "undici-types": "7.12.0" }, "overrides": { "vite": "6.3.6", - "rollup": "4.50.2" + "rollup": "4.50.2", + "undici-types": "7.12.0" } } \ No newline at end of file