Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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容器中使用go模块时找不到包错误_Docker_Go - Fatal编程技术网

在docker容器中使用go模块时找不到包错误

在docker容器中使用go模块时找不到包错误,docker,go,Docker,Go,鉴于我有一些使用docker容器的经验,我决定使用docker容器来创建一个围棋环境并学习。下面是我的go web应用程序dockerfile FROM golang:1.12.0-alpine3.9 as base ARG GO111MODULE=on RUN apk update && apk add make bash git COPY ./app /go/src/app WORKDIR /go/src/app RUN go build COPY ./compose

鉴于我有一些使用docker容器的经验,我决定使用docker容器来创建一个围棋环境并学习。下面是我的go web应用程序dockerfile

FROM golang:1.12.0-alpine3.9 as base

ARG GO111MODULE=on

RUN apk update && apk add make bash git

COPY ./app /go/src/app
WORKDIR /go/src/app
RUN go build

COPY ./compose/local/golang/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

RUN go get github.com/oxequa/realize

ENTRYPOINT [ "/entrypoint.sh" ]
CMD ["realize", "start"]
我的go.mod文件

module github.com/rajeshyogeshwar/demoapp

go 1.12

require (
    github.com/Sirupsen/logrus v1.0.6
    github.com/joho/godotenv v1.3.0
    github.com/julienschmidt/httprouter v1.2.0
    github.com/lib/pq v1.0.0
    github.com/spf13/cobra v0.0.3
    github.com/spf13/viper v1.2.0
)
最后是我的项目文件夹结构

正如我们所看到的,我正在尝试使用httprouter模块,它已经在我的go.mod文件中定义。但我一直在犯以下错误

app_1        | [06:46:56][APP] : Install 
app_1        |  main.go:8:2: cannot find package "github.com/julienschmidt/httprouter" in any of:
app_1        |  /usr/local/go/src/github.com/julienschmidt/httprouter (from $GOROOT)
app_1        |  /go/src/github.com/julienschmidt/httprouter (from $GOPATH)

因此,如果有人能指出明显的错误,那就太好了。

你如何运行你的应用程序(而不是
realize start
)?无论如何,可能尝试使用
go install
而不是
go build
,然后直接使用生成的二进制文件。@YuryFedorov我尝试过安装,但错误仍然存在。至于运行应用程序,我正在运行一个简单的服务器并监听端口8080@RajeshYogeshwar这是
entrypoint.sh
文件中的
Install
错误吗?你能展示一下它的内容吗ARG值仅在生成时设置/可用,删除后,您可能应该设置
environment
value@ttomalak几分钟前我意识到了这一点,并将GO111模块设置为环境模块。至于entrypoint.sh,到目前为止还没有任何内容。@ttomalak这正是问题所在。由于Dockerfile中的ARG仅在构建阶段设置变量,因此go build或go mod download命令将不起作用。根据你的建议和我的认识,我对它进行了更新,它已经起作用了。非常感谢你指出这一点。