我试图在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会像预期的那样运行,但私有存储库会失败。
希望有人能帮我解决这个问题。
谢谢