jenkinsfile docker agent可以访问私有存储库&作曲家

时间:2017-08-08 16:39:28

标签: php docker jenkins ssh jenkins-declarative-pipeline

我试图在Jenkinsfile中使用声明性pipline来构建我的php应用程序。我的jenkins在docker容器中运行,因为我也希望将此服务器用于其他服务。

我现在的问题是,我必须使用composer通过公钥验证安装bitbucket的私有包。对于作曲家,我使用Docker hub上的官方作曲家的docker容器。

这是我的Jenkins文件:

GROUP BY

如果我在pipeline { environment { BUILD_VERSION = new java.text.SimpleDateFormat('yyyyMMddHHmmss').format(new Date()) } options { buildDiscarder(logRotator(numToKeepStr: '3')) } agent any stages { stage('composer install') { agent { docker { image 'composer:latest' args "--volume /tmp:/app --volume /etc/passwd:/etc/passwd:ro --volume /etc/group:/etc/group:ro -u 1000" } } steps { sshagent(credentials: ['jenkins_ssh_key']){ sh 'composer install -d /app' } } post { success { echo 'Composer compiled successfully :)' } failure { echo 'Composer throw an error :(' } } } } post { always { echo 'Cleaning up' deleteDir() /* clean up our workspace */ } success { echo 'Build successful finished :)' } failure { echo '[FAILURE] Build was not successful :(' } } } 中使用sh 'composer install',就像我上面的文件一样,它会失败并显示没有找到composer.json的信息。

如果我在没有sshagent的情况下使用sshagent(...){...},则composer会像预期的那样运行,但私有存储库会失败。

希望有人能帮我解决这个问题。

谢谢

0 个答案:

没有答案