diff --git a/docker/Dockerfile.non_root b/docker/Dockerfile.non_root index fda591df083..431bd49fbc8 100644 --- a/docker/Dockerfile.non_root +++ b/docker/Dockerfile.non_root @@ -41,8 +41,15 @@ COPY . . ENV LITELLM_NON_ROOT=true # Build Admin UI using the upstream command order while keeping a single RUN layer +# NOTE: .npmrc (which has ignore-scripts=true and min-release-age=3d) is temporarily +# renamed during npm install/ci. This is safe because npm ci installs from +# package-lock.json with pinned versions + integrity hashes. RUN mkdir -p /var/lib/litellm/ui && \ - npm install -g npm@latest && npm cache clean --force && \ + [ -f /app/.npmrc ] && mv /app/.npmrc /app/.npmrc.bak || true && \ + npm install -g npm@11.12.1 && \ + npm install -g node-gyp@12.2.0 && \ + ln -sf /usr/local/lib/node_modules/node-gyp /usr/lib/node_modules/npm/node_modules/node-gyp && \ + npm cache clean --force && \ cd /app/ui/litellm-dashboard && \ if [ -f "/app/enterprise/enterprise_ui/enterprise_colors.json" ]; then \ cp /app/enterprise/enterprise_ui/enterprise_colors.json ./ui_colors.json; \