对于我在GitHub上的一个项目,我想将它构建为docker镜像并将其推送到我的docker hub。该项目是一个带有Scala代码库的项目。
以下是我的JenkinsFile的定义方式:
#DATE
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
当我尝试从Jenkins服务器运行此程序时,出现以下错误:
#!groovy
node {
// set this in Jenkins server under Manage Jenkins > Credentials > System > Global Credentials
docker.withRegistry('https://hub.docker.com/', 'joesan-docker-hub-credentials') {
git credentialsId: '630bd271-01e7-48c3-bc5f-5df059c1abb8', url: 'https://github.com/joesan/monix-samples.git'
sh "git rev-parse HEAD > .git/commit-id"
def commit_id = readFile('.git/commit-id').trim()
println comit_id
stage "build" {
def app = docker.build "Monix-Sample"
}
stage "publish" {
app.push 'master'
app.push "${commit_id}"
}
}
}
由于这是在Azure上的VM内部运行,我认为VM无法到达外部,但似乎并非如此,因为我能够从Git仓库进入VM并git pull。那么这里的问题是什么?我怎么能做这个工作?
答案 0 :(得分:5)
对我来说,取消选中“轻量级结帐”修复了问题
答案 1 :(得分:3)
我遇到了完全相同的错误。我的设置:
https://myJenkins/job/my-job/configure
。在底部,请参阅Pipeline
- >部分; Additional Behaviours
- >将Check out into a sub-directory
设置为Local subdirectory for repo
的{{1}},例如my-sub-dir
。Jenkinsfile
最终会在my-sub-dir/Jenkinsfile
。Script path
,您可以配置Jenkinsfile
的位置,以便Jenkins可以开始构建。我把my-sub-dir/Jenkinsfile
作为价值。然后我收到了您在问题中粘贴的例外情况。我通过将Script Path
设置为Jenkinsfile
来修复它。如果您没有指定要检出的子目录,那么仍然可以尝试仔细检查Script Path
的值。
注意:我有另一个Jenkins实例在工作。在那里,我必须指定Script Path
,包括自定义签出子目录(如上面的期望中所述)。
答案 2 :(得分:0)