Hi all - I'm not a go (golang) developer, but the team that I support write their services in go. I need to build a pipeline for go builds. However... because of the strict pathing that go expects (/go/src/Y/Y/X), I'm having a hard time making a pipeline that works. My problem is that I need to run the build inside of a docker container and the host user is jenkins (501:501), so the docker user is 501, which can't write to "/" to create the necessary paths.
I've tried to set the GOPATH, but when I do it to the work space directory, it turns around and says that directory doesn't exist. It's baffling . So... if you have a working pipeline script for building go, I'd love for you to share it. Here's some examples of what I'm getting... pipeline { agent { docker 'golang:1.7.3-alpine' } stages { stage('build') { steps { sh 'env.GOPATH=$PWD' sh 'mkdir -p $GOPATH/src/marketability-service' dir('$GOPATH/src/marketability-service') { sh 'go version' sh 'echo $GOPATH' sh 'mkdir -p $GOPATH/src/marketability-service/' sh 'ls -al $GOPATH/src/marketability-service/' checkout scm sh 'ls -al' } } } } } Results: + docker pull golang:1.7.3-alpine 1.7.3-alpine: Pulling from library/golang Digest: sha256:25ad25d8bece9d403be107b07c86fb6b2b588a5b26133baa9d1215c07bdbfa39 Status: Image is up to date for golang:1.7.3-alpine[Pipeline] }[Pipeline] // stage[Pipeline] sh[ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA] Running shell script + docker inspect -f . golang:1.7.3-alpine .[Pipeline] withDockerContainer$ docker run -t -d -u 501:501 -w /home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA -v /home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA:/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA:rw -v /home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA@tmp:/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA@tmp:rw -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** --entrypoint cat golang:1.7.3-alpine[Pipeline] {[Pipeline] stage[Pipeline] { (build)[Pipeline] sh[ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA] Running shell script + env.GOPATH=/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA /home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA@tmp/durable-264541e0/script.sh: line 1: env.GOPATH=/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA: not found[Pipeline] }[Pipeline] // stage[Pipeline] }$ docker stop --time=1 141956393cfde63600f9fbb54475f50848279444b80abe647fef24c2bd9a5925 $ docker rm -f 141956393cfde63600f9fbb54475f50848279444b80abe647fef24c2bd9a5925[Pipeline] // withDockerContainer[Pipeline] }[Pipeline] // node[Pipeline] End of Pipeline GitHub has been notified of this commit’s build result ERROR: script returned exit code 127Finished <http://stacktrace.jenkins-ci.org/search?query=Finished>: FAILURE -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/41945034-58a6-48fe-a8c4-1354b58e4bd8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.