微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在构建使用Go模块的项目时,权限被拒绝在Jenkins中创建/ go目录

如何解决在构建使用Go模块的项目时,权限被拒绝在Jenkins中创建/ go目录

当我尝试构建使用go模块的go Jenkins项目时,看到此错误

go: writing go.mod cache: mkdir /go: permission denied

每次导入我也看到类似的错误

project-name/cmd imports
    github.com/antonfisher/nested-logrus-formatter: mkdir /go: permission denied
project-name/cmd imports
    github.com/gorilla/mux: mkdir /go: permission denied
project-name/cmd imports
    github.com/pkg/errors: mkdir /go: permission denied
project-name/cmd imports
    github.com/sirupsen/logrus: mkdir /go: permission denied
project-name/cmd imports
    github.com/spf13/cobra: mkdir /go: permission denied
project-name/cmd imports
    github.com/spf13/viper: mkdir /go: permission denied
project-name/cmd imports
    k8s.io/api/core/v1: mkdir /go: permission denied
project-name/cmd/cli/backup imports
    github.com/vmware-tanzu/velero/pkg/apis/velero/v1: mkdir /go: permission denied
project-name/cmd/cli/backup imports
    github.com/vmware-tanzu/velero/pkg/backup: mkdir /go: permission denied
project-name/cmd/cli/backup imports
    github.com/vmware-tanzu/velero/pkg/builder: mkdir /go: permission denied
project-name/cmd/cli/backup imports
    k8s.io/apimachinery/pkg/apis/Meta/v1: mkdir /go: permission denied
project-name/cmd/cli/csisnaprestore imports
    github.com/gosuri/uitable: mkdir /go: permission denied
project-name/cmd/cli/csisnaprestore imports
    github.com/kubernetes-csi/external-snapshotter/v2/pkg/apis/volumesnapshot/v1beta1: mkdir /go: permission denied
project-name/cmd/cli/csisnaprestore imports
    k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset: mkdir /go: permission denied
project-name/cmd/cli/csisnapshot imports
    k8s.io/apimachinery/pkg/apis/Meta/v1/unstructured: mkdir /go: permission denied
project-name/cmd/cli/csisnapshot imports
    k8s.io/apimachinery/pkg/util/wait: mkdir /go: permission denied
project-name/cmd/cli/initz imports
    k8s.io/api/apps/v1: mkdir /go: permission denied
project-name/cmd/cli/px/appbackup imports
    github.com/libopenstorage/stork/pkg/apis/stork/v1alpha1: mkdir /go: permission denied
project-name/cmd/cli/px/credentials imports
    github.com/libopenstorage/openstorage/api: mkdir /go: permission denied
project-name/cmd/cli/repository imports
    gocloud.dev/blob: mkdir /go: permission denied
project-name/cmd/cli/snaprestore imports
    k8s.io/apimachinery/pkg/labels: mkdir /go: permission denied
project-name/cmd/cli/snapshot imports
    k8s.io/apimachinery/pkg/runtime/schema: mkdir /go: permission denied
project-name/cmd/cli/snapshot imports
    k8s.io/client-go/dynamic: mkdir /go: permission denied
project-name/cmd/cli/veleroutil imports
    k8s.io/apimachinery/pkg/api/errors: mkdir /go: permission denied
project-name/cmd/cli/version imports
    k8s.io/apimachinery/pkg/util/intstr: mkdir /go: permission denied
project-name/pkg/cli imports
    github.com/go-openapi/swag: mkdir /go: permission denied
project-name/pkg/cli imports
    github.com/spf13/pflag: mkdir /go: permission denied
project-name/pkg/cli imports
    k8s.io/client-go/kubernetes: mkdir /go: permission denied
project-name/pkg/cli imports
    k8s.io/client-go/rest: mkdir /go: permission denied
project-name/pkg/cli imports
    k8s.io/client-go/tools/clientcmd: mkdir /go: permission denied
project-name/pkg/cli imports
    k8s.io/client-go/tools/clientcmd/api: mkdir /go: permission denied
project-name/pkg/core/framework imports
    github.com/hashicorp/go-version: mkdir /go: permission denied
project-name/pkg/core/framework imports
    k8s.io/api/batch/v1: mkdir /go: permission denied
project-name/pkg/core/framework imports
    k8s.io/api/batch/v1beta1: mkdir /go: permission denied
project-name/pkg/core/framework imports
    k8s.io/apimachinery/pkg/util/rand: mkdir /go: permission denied
project-name/pkg/core/loader imports
    k8s.io/apimachinery/pkg/util/validation: mkdir /go: permission denied
project-name/pkg/hook imports
    k8s.io/client-go/kubernetes/scheme: mkdir /go: permission denied
project-name/pkg/hook imports
    k8s.io/client-go/tools/remotecommand: mkdir /go: permission denied
project-name/pkg/IoUtil imports
    github.com/gofrs/flock: mkdir /go: permission denied
project-name/pkg/IoUtil imports
    golang.org/x/sys/unix: mkdir /go: permission denied
project-name/pkg/kube imports
    github.com/ghodss/yaml: mkdir /go: permission denied
project-name/pkg/kube imports
    k8s.io/api/storage/v1: mkdir /go: permission denied
project-name/pkg/kube imports
    k8s.io/apimachinery/pkg/api/Meta: mkdir /go: permission denied
project-name/pkg/kube imports
    k8s.io/apimachinery/pkg/api/resource: mkdir /go: permission denied
project-name/pkg/kube imports
    k8s.io/apimachinery/pkg/fields: mkdir /go: permission denied
project-name/pkg/kube imports
    k8s.io/apimachinery/pkg/runtime: mkdir /go: permission denied
project-name/pkg/kube imports
    k8s.io/apimachinery/pkg/types: mkdir /go: permission denied
project-name/pkg/kube imports
    k8s.io/client-go/informers: mkdir /go: permission denied
project-name/pkg/kube imports
    k8s.io/client-go/tools/cache: mkdir /go: permission denied
project-name/pkg/kube imports
    k8s.io/client-go/tools/portforward: mkdir /go: permission denied
project-name/pkg/kube imports
    k8s.io/client-go/transport/spdy: mkdir /go: permission denied
project-name/pkg/objectstore imports
    github.com/aws/aws-sdk-go/aws: mkdir /go: permission denied
project-name/pkg/objectstore imports
    github.com/aws/aws-sdk-go/aws/credentials: mkdir /go: permission denied
project-name/pkg/objectstore imports
    github.com/aws/aws-sdk-go/aws/endpoints: mkdir /go: permission denied
project-name/pkg/objectstore imports
    github.com/aws/aws-sdk-go/aws/session: mkdir /go: permission denied
project-name/pkg/objectstore imports
    github.com/aws/aws-sdk-go/service/s3: mkdir /go: permission denied
project-name/pkg/objectstore imports
    github.com/aws/aws-sdk-go/service/s3/s3manager: mkdir /go: permission denied
project-name/pkg/objectstore imports
    gocloud.dev/blob/fileblob: mkdir /go: permission denied
project-name/pkg/objectstore imports
    gocloud.dev/blob/s3blob: mkdir /go: permission denied
project-name/pkg/px imports
    github.com/libopenstorage/openstorage/api/client: mkdir /go: permission denied
project-name/pkg/px imports
    github.com/libopenstorage/openstorage/api/client/cluster: mkdir /go: permission denied
project-name/pkg/px imports
    github.com/libopenstorage/openstorage/api/client/volume: mkdir /go: permission denied
project-name/pkg/px imports
    github.com/libopenstorage/openstorage/cluster: mkdir /go: permission denied
project-name/pkg/px imports
    github.com/libopenstorage/openstorage/volume: mkdir /go: permission denied
project-name/pkg/px imports
    google.golang.org/grpc: mkdir /go: permission denied
project-name/pkg/px imports
    google.golang.org/grpc/credentials: mkdir /go: permission denied
project-name/pkg/px imports
    google.golang.org/grpc/status: mkdir /go: permission denied
project-name/pkg/quiesce imports
    github.com/deckarep/golang-set: mkdir /go: permission denied
project-name/pkg/quiesce imports
    github.com/drone/envsubst: mkdir /go: permission denied
project-name/pkg/stork imports
    github.com/libopenstorage/stork/pkg/client/clientset/versioned/typed/stork/v1alpha1: mkdir /go: permission denied
project-name/pkg/utils imports
    k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1: mkdir /go: permission denied
project-name/pkg/velero imports
    github.com/vmware-tanzu/velero/pkg/generated/clientset/versioned: mkdir /go: permission denied

我正在使用Go Jenkins插件来更改Go版本。

这是我在Jenkins管道中使用它的方式:

def root = tool name: 'Go 1.14',type: 'go'

withEnv(["GOROOT=${root}","PATH+GO=${root}/bin","GOBIN=${root}/bin"]) {
  sh 'go version'
  sh './build.sh'
}

注意:./build.sh使用模块构建项目

正在发生什么,如何使我的构建正常工作?

解决方法

问题在于GOPATH仍被定义为/go。构建过程会尝试创建此目录,但是Jenkins无权创建它。

要解决此问题,请在您的GOPATH调用中定义withEnv,这样最终的withEnv代码块将类似于:

withEnv(["GOROOT=${root}","PATH+GO=${root}/bin","GOBIN=${root}/bin","GOPATH=${root}/go"]) {
  sh 'go version'
  sh './build.sh'
}

文档中没有提及定义“ GOPATH”,因此花了我几天时间才发现。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。