簡體   English   中英

無法通過Jenkins聲明性管道更改Docker容器內的目錄

[英]Unable to change a directory inside a Docker container through a Jenkins declarative pipeline

我正在嘗試使用此處概述的dir命令更改當前目錄: https//jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-dir-code-change-current-directory

我編輯了我的管道,就像這樣:

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

它根本不會更改目錄,而是嘗試在主機上創建一個目錄並使用java.io.IOException: Failed to mkdirs: /var/www/html/community-edition

使用sh cd /var/www/html/community-edition似乎也不起作用。 如何更改容器中的目錄? 其他人似乎有同樣的問題,但不得不改變他的管道結構來改變目錄,聽起來不是一個合理的修復。 是不是已經在容器中調用了步驟? https://issues.jenkins-ci.org/browse/JENKINS-46636

我昨天遇到了同樣的問題。 這似乎是一個錯誤導致dir()在容器內使用時不更改目錄。 我通過一次執行cdpwd命令讓它工作,像這樣:

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

我有同樣的問題,當我在jenkinsfile管道中有“ws”時,這對我有用:

   stage('prepare') {
        steps {
            ws('/var/jenkins_home/workspace/pipeline@script/desiredDir') {
              sh ''

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM