在docker容器中使用go模块时找不到包错误
鉴于我有一些使用docker容器的经验,我决定使用docker容器来创建一个围棋环境并学习。下面是我的go web应用程序dockerfile在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
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
错误吗?你能展示一下它的内容吗environment
value@ttomalak几分钟前我意识到了这一点,并将GO111模块设置为环境模块。至于entrypoint.sh,到目前为止还没有任何内容。@ttomalak这正是问题所在。由于Dockerfile中的ARG仅在构建阶段设置变量,因此go build或go mod download命令将不起作用。根据你的建议和我的认识,我对它进行了更新,它已经起作用了。非常感谢你指出这一点。