1

在运行时,我的管道将位于 BitBucket 工作区中的二进制文件复制到构建工作区中,然后需要在构建工作区中添加一些来自凭证存储的秘密文件,然后开始构建 docker 映像。

但是复制文件时管道失败。我搜索并应用了此处找到的不同解决方案,但仍然有相同的错误。

运行以下命令:

stage('push credential in jenkins workspace') {
      steps {

        script {
          withCredentials([
              file(credentialsId: 'saremediation', variable: 'SA_KEY_PATH')]){
              sh "ls -al"
              sh "mkdir ${CERTIFDIR}"
              sh "cp ${SA_KEY_PATH} ${CERTIFDIR}/credent.json"
              
              }
        }

      }
    }

失败并出现以下错误:

[Pipeline] sh
Warning: A secret was passed to "sh" using Groovy String interpolation, which is insecure.
         Affected argument(s) used the following variable(s): [SA_KEY_PATH]
         See https://jenkins.io/redirect/groovy-string-interpolation for details.
+ cp **** server/src/configuration/certificats/credent.json 
cp: target 'server/src/configuration/certificats/credent.json' is not a directory

CERTIFDIR 文件夹创建良好,因为当我添加时sh "ls -al ${CERTIFDIR}",我可以看到该文件夹​​已创建并且为空。

4

1 回答 1

1

通过在 cp 命令中应用此语法来解决问题

sh "cp \"${SA_KEY_PATH}\" \"${CERTIFDIR}\""
于 2021-02-24T13:02:24.763 回答