nodejs / nodejs/docker-node

Permission denied error when trying to install pnpm via Corepack as node user

Abierto
#1,732 12 comentarios 4 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

permissions
Lenguaje dominante
Dockerfile
Estrellas
8.6k
Forks
2k
Merge medio
10 h 19 min
PR fusionados (30 d)
16

Descripción

Environment

  • Node.js Version: 16.15.0
  • Image Tag: lts-alpine

Expected Behavior

I should be able to install pnpm using Corepack as a non-privilegied user.

Current Behavior

When I try to install pnpm via Corepack (corepack enable) as non-privilegied user (-u node), I get the following error:

/app $ corepack enable
Internal Error: EACCES: permission denied, symlink '../lib/node_modules/corepack/dist/pnpm.js' -> '/usr/local/bin/pnpm'
Error: EACCES: permission denied, symlink '../lib/node_modules/corepack/dist/pnpm.js' -> '/usr/local/bin/pnpm'
/app $ 

Running corepack enable as root work as expected.

docker run -it -v $(pwd):/app node:lts-alpine /bin/sh

image

Steps to Reproduce

  1. Create an empty project with the following package.json. The packageManager property is important here.

    {
        "name": "docker-node-pnpm",
        "version": "1.0.0",
        "private": true,
        "packageManager": "pnpm@7.1.7"
    }
    
  2. Run the container as a non-privilegied user: docker run -it -v $(pwd):/app -u node node:lts-alpine /bin/sh

  3. cd /app

  4. corepack enable <-- This should fail

  5. corepack prepare

  6. pnpm install

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza reproduciendo el fallo con los comandos de Docker documentados para node:lts-alpine y el usuario sin privilegios -u node. Revisa cómo la imagen configura Corepack y las rutas con permisos de escritura; se considera terminado cuando corepack enable se ejecuta correctamente como node y el flujo documentado de instalación de pnpm funciona sin root.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
docker, node.js
Área
devops, infrastructure
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Activo
Claridad
Bastante claro
Aptitud para principiantes
58/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.