Как я могу смонтировать секретный файл в образ докера в декларативном конвейере Jenkins? - PullRequest
0 голосов
/ 06 ноября 2018

В настоящее время у меня есть конвейер, работающий примерно так:

pipeline {
  agent {
    docker {
      label 'linux'
      image 'java:8'
      args '-v /home/tester/.gradle:/.gradle'
    }
  }

  environment {
    HOME = '/'
    GRADLE_USER_HOME = '/.gradle'
    GRADLE_PROPERTIES = credentials('gradle.properties')
  }

  stages {
    stage('Build') {
      steps {
        sh 'cp ${GRADLE_PROPERTIES} ${GRADLE_USER_HOME}/'
        sh './gradlew clean check'
      }
    }
  }
}

Проблема в том, что gradle.properties в конечном итоге помещается в более известное место в хост-системе на время сборки.

Я знаю, что Docker позволяет мне «монтировать» файлы с хоста. Поэтому я хотел бы сделать это вместо:

  agent {
    docker {
      label 'linux'
      image 'java:8'
      args '-v /home/tester/.gradle:/.gradle ' +
           '-v ' + credentials('gradle.properties') +
           ':/.gradle/gradle.properties'
    }
  }

К сожалению, это заканчивается тем, что выполняется:

$ docker run -t -d -u 1001:1001 -v /home/tester/.gradle:/.gradle -v @credentials(<anonymous>=gradle.properties):/.gradle/gradle.properties -w

Есть ли способ заставить его расширить его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...