2017-10-05 2 views
1

Ich versuche ändern, das aktuelle Verzeichnis zu ändern, die mit dem Befehl dir hier skizziert: https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-dir-code-change-current-directoryVerzeichnis kann nicht innerhalb eines Docker Behälters durch eine Jenkins deklarative Pipeline

ich meine Pipeline, so etwas ähneln bearbeitet haben:

pipeline { 
    agent { dockerfile true } 
    stages { 
     stage('Change working directory...') { 
      steps { 
       dir('/var/www/html/community-edition') { 
        sh 'pwd' 
       } 
      } 
     } 
    } 
} 

Es ist nicht das Verzeichnis überhaupt, sondern ein Verzeichnis auf dem Host statt versucht, ändern und mit java.io.IOException: Failed to mkdirs: /var/www/html/community-edition

mit sh cd /var/www/html/community-edition doesn nicht zu erstellen Es scheint auch nicht zu funktionieren. Wie ändere ich das Verzeichnis im Container? Ein anderer scheint das gleiche Problem gehabt zu haben, musste aber seine Pipeline-Struktur ändern, um das Verzeichnis zu ändern, und klingt nicht wie eine vernünftige Lösung. Wird der Schritt nicht bereits im Container aufgerufen? https://issues.jenkins-ci.org/browse/JENKINS-46636

Antwort

0

Ich hatte das gleiche Problem gestern. Es scheint a bug zu sein, das dir() verursacht, das Verzeichnis nicht zu ändern, wenn es in einem Container verwandt wird. Ich habe es funktioniert, indem Sie die cd und pwd Befehl auf einmal, so:

sh '(cd //var/www/html/community-edition && pwd)' 
Verwandte Themen