简体   繁体   中英

Passing jenkins secrets file to docker image run

I'm building a Jenkins pipeline, I've a builde image in my repo, and I've uploaded a secret file that I need to provide to my building job to Jenkins credentials as a Secret file. I need to copy this file to the working directory of a docker run command that run a command on the builder image. I'm using this to retrieve the file as env variable:

withCredentials([
        file(credentialsId: 'keystore', variable: 'KEYSTORE'), {
          try {
            docker run parameters ${image}  -e ${KEYSTORE} command...
         }

Any ideas on how can I make that file available inside the container when run the docker image?

If you want to get the credentials file inside a docker container, you'll also need to volume mount it.

docker run parameters ${image} -e ${KEYSTORE} -v ${KEYSTORE}:${KEYSTORE}:ro

In case you use the built-in docker support, jenkins will take care of that:

pipeline {
    agent {
        dockerfile {
            dir 'build'
        }
    }

    stages {
        stage('Build') {
            steps {
                withCredentials([file(credentialsId: 'keystore', variable: 'KEYSTORE')]) {
                    sh 'ls -l'
                }
            }
        }
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM