我在 docker 容器上运行 Jenkins 并在容器环境中安装 golang 下面是 docker 文件
FROM jenkins/jenkins
USER root
# FROM golang
ENV GOLANG_VERSION 1.13.5
ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \
&& tar -C /usr/local -xzf golang.tar.gz \
&& rm golang.tar.gz
ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
USER jenkins
创建 docker 镜像后,我将其运行到端口
8080
上的容器中.当我点击 URL localhost:8080
然后 Jenkins UI 打开并创建了 Jenkins 作业。我正在克隆我的 git 仓库,并且在作业配置的构建部分中执行 shell 命令是:go get -u github.com/golang/dep/cmd/dep
dep init
dep ensure
cd test_case
go test -v *.go
我还使用
go get
运行命令安装所有依赖项然后将在构建控制台中向我显示错误。对于上述配置,我面临以下错误:
+ go get -u github.com/golang/dep/cmd/dep
+ dep init
init failed: unable to detect the containing GOPATH: /var/jenkins_home/workspace/goapp is not within a known GOPATH/src
Build step 'Execute shell' marked build as failure
Finished: FAILURE
有人可以帮我解决这个问题吗?如果有任何错误,请告诉我,因为我是 docker 和 Jenkins 的新手。
最佳答案
+ dep init
init failed: unable to detect the containing GOPATH: /var/jenkins_home/workspace/goapp is not within a known GOPATH/src
您只能运行 dep init
从 $GOPATH/src/
中的目录内部
您的 GOPATH 环境变量设置为目录 /go/
.但是您正在尝试运行 dep init
在 /var/jenkins_home/workspace/goapp
.
关于docker - 在 docker 上运行的 Jenkins 构建中的 GOPATH 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59660776/