docker - 在 docker 上运行的 Jenkins 构建中的 GOPATH 问题

标签 docker go jenkins

我在 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/

相关文章:

go - 不能使用 _ 作为值

maven - Jenkins控制台未显示在Docker容器上运行的命令的输出

git - 为什么 Jenkins 收到 git submodule update 的 Authentication Failed 错误?

docker - 如何运行docker守护进程?

docker - Docker/Kubernetes-如何在容器之间共享DNS名称?

mysql - 如何为在 docker 容器上运行的 MySQL 设置对本地文件系统上的文件的访问

go - 列出按条件过滤的 Firestore 集合 ID

mongodb - 选择一个包含元素数量有限的数组的文档

docker - 如何阻止 Docker 注册表?

java - 在 JAVA 中通过 API 更改 Jenkins 构建名称和描述