Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

330
Views
La instalación de npm falla en la canalización de jenkins en la ventana acoplable

Estoy siguiendo un tutorial sobre la canalización de Jenkins y puedo hacer que un "hola mundo" funcione en el contenedor acoplable del nodo 6.10.

Pero, cuando agregué una aplicación EmberJS predeterminada (usando ember init ) al repositorio e intenté compilarla en la canalización, falla al ejecutar npm install (debido a problemas de acceso al directorio). El archivo Jenkins se puede ver aquí: https://github.com/CloudTrap/pipeline-tutorial/blob/fix-build/Jenkinsfile

El mensaje de error impreso por la compilación es (que se instala localmente y se ejecuta usando java -jar jenkins.war en una Macbook, no es relevante pero se incluye por si acaso) es:

 npm ERR! Linux 4.9.12-moby npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" npm ERR! node v6.10.0 npm ERR! npm v3.10.10 npm ERR! path /.npm npm ERR! code EACCES npm ERR! errno -13 npm ERR! syscall mkdir npm ERR! Error: EACCES: permission denied, mkdir '/.npm' npm ERR! at Error (native) npm ERR! { Error: EACCES: permission denied, mkdir '/.npm' npm ERR! at Error (native) npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'mkdir', npm ERR! path: '/.npm', npm ERR! parent: 'pipeline-tutorial' } npm ERR! npm ERR! Please try running this command again as root/Administrator.

Nota: Me gustaría no ejecutar npm install como root/sudo.

ACTUALIZACIÓN: he podido hacer algunos progresos de la siguiente manera:

Encontré el comando que usa Jenkins para construir usando el contenedor de los registros:

 [Pipeline] withDockerContainer $ docker run -t -d -u 501:20 -w /long-workspace-directory -v /long-workspace-directory:/long-workspace-directory:rw -v /long-workspace-directory@tmp:/long-workspace-directory@tmp:rw -e

Entonces, cuando se ejecuta la imagen de la ventana acoplable, su directorio de trabajo es un directorio /long-workspace-directory (en realidad es una ruta de espacio de trabajo de Jenkins de aspecto críptico) y la identificación del usuario es 501 (identificación de grupo 20), etc. El usuario no tiene un nombre (que aparentemente está rompiendo otras cosas no relacionadas con esta pregunta).

  1. Se cambió el agente para usar un Dokefile:

     agent { dockerfile { filename 'Dockerfile' args '-v /.cache/ -v /.bower/ -v /.config/configstore/' } }
  2. Especifique args '-v ...' para crear volúmenes para los directorios que npm install / bower necesita.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Agregar los entornos y establecer el Inicio en '.' resuelve esto de la siguiente manera.

 pipeline { agent { docker { image 'node:8.12.0' } } environment { HOME = '.' } stages { stage('Clone') { steps { git branch: 'master', credentialsId: '121231k3jkj2kjkjk', url: 'https://myserver.com/my-repo.git' } } stage('Build') { steps { sh "npm install" } } } }
over 4 years ago · Santiago Trujillo Report

0

de https://github.com/jenkins-infra/jenkins.io/blob/master/Jenkinsfile

 docker.image('openjdk:8').inside { /* One Weird Trick(tm) to allow git(1) to clone inside of a * container */ withEnv([ /* Override the npm cache directory to avoid: EACCES: permission denied, mkdir '/.npm' */ 'npm_config_cache=npm-cache', /* set home to our current directory because other bower * nonsense breaks with HOME=/, eg: * EACCES: permission denied, mkdir '/.config' */ 'HOME=.', ]) { // your code } }
over 4 years ago · Santiago Trujillo Report

0

Después de haber desperdiciado un día entero en este problema, descubrí que simplemente agregando lo siguiente como una variable de entorno en la etapa del agente usando Pipeline Editor se eliminó el problema.

 'npm_config_cache=npm-cache'
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!