![](/img/trans.png)
[英]Docker build : "go: go.mod file not found in current directory or any parent directory"
[英]"go: go.mod file not found in current directory" but it already exist in the directory
我正在尝试为围绕 GCP 的项目构建 DockerFile。 我正在使用 go 版本 1.17,它在 get 命令中失败,说 go.mod 未找到,但它与 Z3254677A7917C6C01F55212F865C 存在于同一目录中。 我已经尝试过go mod init
和go mod tidy
但我仍然遇到同样的错误。 这是我的环境变量和文件:
GO111MODULE="auto"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/name/.cache/go-build"
GOENV="/home/name/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/name/work/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/name/work"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.17.1"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/name/workspace/professional-services/tools/gcs2bq/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3855548593=/tmp/go-build -gno-record-gcc-switches"
我的工作目录中的文件列表:
name@vm-gcs2bq:~/workspace/professional-services/tools/gcs2bq$ ls
Dockerfile bigquery.schema datastudio.png gcs2bq.avsc go.mod main.go
README.md credentials.json gcs2bq-custom-role.yaml gcs2bq.yaml go.sum run.sh
我在 Dockerfile 中的工作目录设置正确(gcs2bq 之一),在尝试构建它时我得到:
Step 6/16 : RUN go get -v ./...
---> Running in ebaa284887cf
go: go.mod file not found in current directory or any parent directory; see 'go help modules'
我对 go 还是有点陌生,主要是 c 和 python,我读到包是用这种语言以不同的方式管理的,但我认为我也正确设置了路径。 如我错了请纠正我。
任何帮助表示赞赏,如果需要,请询问更多详细信息。
提前致谢 !
好的,我解决了我的问题。
首先,我的 WORKDIR 没有指向正确的目录: WORKDIR /go/src/github.com/rosmo/gcs2bq
而不是WORKDIR /work/src/github.com/rosmo/gcs2bq
但这只是因为我使用 /work而不是 /go 用于已安装的软件包。
然后我在COPY main.go.
命令:
RUN go mod init v1
RUN go mod tidy
它创建了“丢失的” go.mod 文件并正确安装了所需的依赖项/包。
构建的 rest 完全正常。
谢谢你的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.