Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转到Docker build中自己的包的1.11未知导入路径_Docker_Go_Go Modules - Fatal编程技术网

转到Docker build中自己的包的1.11未知导入路径

转到Docker build中自己的包的1.11未知导入路径,docker,go,go-modules,Docker,Go,Go Modules,我正在迁移一些代码来使用Go 1.11模块,我能够从shell构建它,但不能在Docker中 相关Dockerfile部分: WORKDIR /goscout COPY ["go.mod", "go.sum", "./"] RUN GO111MODULE=on go get -u=patch COPY *.go ./ RUN GO111MODULE=on go build -v -ldflags "-linkmode external -extldflags -static" -o GoScou

我正在迁移一些代码来使用Go 1.11模块,我能够从shell构建它,但不能在Docker中

相关Dockerfile部分:

WORKDIR /goscout
COPY ["go.mod", "go.sum", "./"]
RUN GO111MODULE=on go get -u=patch
COPY *.go ./
RUN GO111MODULE=on go build -v -ldflags "-linkmode external -extldflags -static" -o GoScout -a .
当Docker运行上述摘录中的最后一个命令时,我得到以下错误:

can't load package: package github.com/triplestrange/StrangeScout/goscout: unknown import path "github.com/triplestrange/StrangeScout/goscout": ambiguous import: found github.com/triplestrange/StrangeScout/goscout in multiple modules:
    github.com/triplestrange/StrangeScout/goscout (/goscout)
    github.com/triplestrange/StrangeScout v0.3.0 (/go/pkg/mod/github.com/triplestrange/!strange!scout@v0.3.0/goscout)

我没有把它放在shell中,所以我猜我没有正确复制一些文件。但是在这个命令运行之前,我已经复制了
go.mod
go.sum
*.go
,所以我不知道可能缺少什么。

请确保为您的项目正确初始化了模块

go mod init github.com/triplestrange/StrangeScout/goscout
这样您的
go.mod
的内容

module github.com/triplestrange/StrangeScout/goscout
然后,您可以使用当前Dockerfile,而无需任何更改

无需设置
GO111MODULE=on
,因为您正在
$GOPATH
之外运行
go
命令

➜ docker build -t goscout . Sending build context to Docker daemon 47.1kB Step 1/11 : FROM golang:latest AS builder ---> fb7a47d8605b Step 2/11 : WORKDIR /goscout ---> Running in e9786fe5ab53 Removing intermediate container e9786fe5ab53 ---> 6d101e346175 Step 3/11 : COPY ./ ./ ---> 7081c0b47dc9 Step 4/11 : RUN go get -d -v ./... ---> Running in 3ce69359ae88 go: finding github.com/go-sql-driver/mysql v1.4.0 go: finding github.com/gorilla/mux v1.6.2 go: downloading github.com/gorilla/mux v1.6.2 go: downloading github.com/go-sql-driver/mysql v1.4.0 Removing intermediate container 3ce69359ae88 ... ---> 3df0dbca80e5 Successfully built 3df0dbca80e5 Successfully tagged goscout:latest ➜ docker build-t goscout。 将生成上下文发送到Docker守护程序47.1kB 步骤1/11:来自golang:最新的建筑商身份 --->fb7a47d8605b 步骤2/11:WORKDIR/goscout --->在e9786fe5ab53中运行 拆卸中间容器e9786fe5ab53 --->6d101e346175 步骤3/11:复制。// --->7081c0b47dc9 步骤4/11:运行go get-d-v./。。。 --->在3ce69359ae88中运行 go:finding github.com/go-sql-driver/mysql v1.4.0 转到:查找github.com/gorilla/mux v1.6.2 转到:下载github.com/gorilla/mux v1.6.2 go:下载github.com/go-sql-driver/mysql v1.4.0 拆卸中间容器3ce69359ae88 ... --->3df0dbca80e5 成功构建3df0dbca80e5 已成功标记goscout:最新