"go: go.mod file not found in current 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 但它与 Dockerfile 存在于同一目录中。我已经尝试了 go mod initgo 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'

我还是有点新手,主要是 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 文件并正确安装了所需的 dependencies/packages。

构建的其余部分完全正常。

感谢您的帮助。