Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

332
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda