当前位置: 首页 > 知识库问答 >
问题:

使用gCloud的Jenkins管道不工作

尚恩
2023-03-14

我试图设置jenkins管道使用gCloud,但我得到以下错误:

/service-account-creds.json警告:无法在 /.config/gcloud/logs中设置日志文件,(错误:无法创建目录[/. config/gCloud/logs/2019.02.07]:权限被拒绝。

守则:

stages {
        stage('build') {
            steps {
                withCredentials([file(credentialsId: 'google-container-registry', variable: 'GOOGLE_AUTH')]) {
                    script {
                        docker.image('google/cloud-sdk:latest').inside {
                            sh "echo ${GOOGLE_AUTH} > gcp-key.json"
                            sh 'gcloud auth activate-service-account --key-file ./service-account-creds.json'
                        }
                    }
                }
            }
        }
    }

Jenkins使用imagen Jenkins/Jenkins在容器中运行

共有1个答案

和选
2023-03-14

试试这个:

withCredentials([file(credentialsId: 'google-container-registry', variable: 'GOOGLE_AUTH')]) {
    script {
        docker.image('google/cloud-sdk:latest').inside {
            sh "echo ${GOOGLE_AUTH} > gcp-key.json"
            sh "gcloud auth activate-service-account --key-file=${GOOGLE_AUTH}"
        }
    }
}
 类似资料:
  • 目前的问题是jenkins管道作业确实正常运行并完成。但在用户界面中,作业会一直保留,直到我们通过用户界面中止它。这似乎并不常见,可能在5%的工作中。这可能是jenkins的错误,可能是重新加载配置的问题,也可能是节点上的流量过大。我真的不确定。因为所有的“buggy”工作都有一个带条纹的进度条,这可能是一个线索。 带条纹的进度条是什么意思? 如果您对该漏洞的来源有任何其他建议,我们将不胜感激。

  • 问题内容: 我们正在运行Jenkins 2.x,并且喜欢新的Pipeline插件。但是,由于存储库中有如此多的分支,因此磁盘空间会迅速填满。 是否有任何与Pipeline兼容的插件,我可以在成功构建后清除工作空间? 问题答案: 您可以将其用作管道Jenkinsfile的最后一步(假设您没有更改工作目录)。

  • 我试图在jenkins管道中的不同节点上运行不同的阶段,比如第一阶段是签出,第二阶段是构建,第三阶段是单元测试。例如: 如果我尝试这样做,我的问题是如果我在Linux1节点中签出代码,那么当签出的代码在node1中时,为什么其他阶段可以在不同的节点中运行。 代码将如何分布,如果我的理解不正确,我如何实现并行,并确保每个阶段都可以并行并减少时间。 如果可能,请推荐任何用于编写Jenkins管道的gr

  • 问题内容: 我正在尝试在作为Jenkins Pipeline一部分运行的docker容器内执行一些git查询。在docker容器外面,sshsgent工作正常,我可以访问我的SCM没问题。在容器内部,我收到主机密钥验证问题。 有人可以帮助我解决我所犯的错误吗? 首先whoami呼叫输出: docker容器输出中的第二个调用(和回显): 问题答案: 主机密钥验证失败 容器中的SSH连接无法验证主机(

  • 我试图通过jenkins管道将azure web应用程序部署到azure form git 代码如下所示 这怎么可能?有什么方法可以将git repo url作为参数提供给azure插件吗? 谢了!

  • 传递参数 链接管道 我们可以将多个管道连接在一起,以便在一个表达式中使用多个管道。