EACCES docker permission_error ai_generated true

npm error EACCES: permission denied in Docker container during npm install

ID: docker/npm-install-eacces-docker

Also available as: JSON · Markdown
90%Fix Rate
90%Confidence
50Evidence
2023-01-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
27 active

Root Cause

npm install fails inside Docker due to root user + npm cache permissions.

generic

Workarounds

  1. 92% success Use a non-root user in Dockerfile: USER node
    FROM node:20-alpine
    RUN mkdir -p /app && chown node:node /app
    USER node
    WORKDIR /app

    Sources: https://docs.docker.com/reference/dockerfile/#user

  2. 88% success Set npm cache directory writable: RUN npm config set cache /tmp/.npm
    RUN npm config set cache /tmp/.npm

    Sources: https://docs.npmjs.com/cli/v10/using-npm/config#cache

Dead Ends

Common approaches that don't work:

  1. Run npm with --unsafe-perm 70% fail

    Security risk and deprecated flag

Error Chain

Frequently confused with: