donglei3370
donglei3370
2018-10-11 17:24

在Jenkins CI中随机获得失败

  • IT行业问题
  • 计算机技术
  • it技术
  • 编程语言问答
  • 互联网问答
已采纳

Recently I get an issue on go get when processing build on Jenkins: the Go get command will be randomly failed when trying to build images. For example, here are several lines in my Dockerfile:

go get -u golang.org/x/lint/golint && \
go get github.com/glaslos/ssdeep && \
go get github.com/mitchellh/mapstructure && \
go get github.com/denisenkom/go-mssqldb && \
go get -u github.com/go-sql-driver/mysql && \
go get github.com/hashicorp/consul/api && \
go get -u github.com/gin-gonic/gin && \
go get -u github.com/gocql/gocql && \
go get github.com/satori/go.uuid && \
go get github.com/golang/protobuf/protoc-gen-go && \

And I will get a fail like:

go get -u github.com/go-sql-driver/mysql cd .; git clone https://github.com/go-sql-driver/mysql /root/go/src/github.com/go-sql-driver/mysql Cloning into '/root/go/src/github.com/go-sql-driver/mysql'... fatal: unable to access 'https://github.com/go-sql-driver/mysql/': Could not resolve host: github.com package github.com/go-sql-driver/mysql: exit status 128

The failed go packages are randomly distributed. Does anyone have any idea to avoid this issue? Like tools that get go package without go get, etc.

Many thanks!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • duanchijie2323 duanchijie2323 3年前

    TLDR; Just commit and push your vendor folder.

    It may be caused by a network issue. What I suggest is that you use a vendoring solution (like dep or modules) and have all your dependencies in a vendor folder, that way you make sure that you are able to replicate builds. Even Kubernetes (https://github.com/kubernetes/kubernetes) has its dependencies in a vendor folder in their repository.

    点赞 评论 复制链接分享

为你推荐