【问题标题】:How can I allow "go get" or "go install" to pull from github inside a Jenkins Kubernetes pod executor?如何允许“go get”或“go install”从 Jenkins Kubernetes pod 执行器中的 github 拉取?
【发布时间】:2019-11-13 20:39:47
【问题描述】:

我在 Kubernetes 集群中运行 Jenkins,并设置生成一个带有 3 个容器的 executor pod:jnlp、golang 和 kubectl。

使用“golang”容器,我希望能够使用“go install”从 github 拉取依赖项

但是,我收到了这些错误(我的代码在 /go/src/test-app 中):

找不到包“github.com/andreid/test-app/controllers” 找不到包“github.com/sirupsen/logrus”

而且它似乎无法从 github 中提取(尽管 Jenkins 从那里提取了我的代码,并且它被配置为使用我生成的开发人员 oauth 密钥来执行此操作)。

“jnlp”容器似乎成功处理了代码的拉取。

我该怎么做才能让“开始安装”按预期工作?

谢谢!

【问题讨论】:

    标签: jenkins kubernetes


    【解决方案1】:

    为了后代:当在 Kubernetes 集群中运行 Jenkins 并使用所有适当的工具(Kubernetes pod 代理等)时,没有直接的方法可以做到这一点。您可能期望代理会在 Jenkins 中获取 github 凭据设置,但他们不会。

    一种快速的方法是创建一个包含 github 访问令牌的机密,并将其作为环境变量 GITHUB_TOKEN 安装在执行 pod 中使用的 golang 容器中。如果您的管道有多种需求,您将需要维护该机密或使用多个机密。

    然后,你需要运行:

    git config --global url."https://${GITHUB_TOKEN}:x-oauth-basic@github.com/<myproject>".insteadOf "https://github.com/<myproject>" 在构建/获取之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-22
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-20
      • 2015-07-23
      • 1970-01-01
      相关资源
      最近更新 更多