【发布时间】:2017-10-22 15:02:40
【问题描述】:
我已经构建了一个 go 应用程序,它有一个主包和一个身份验证包。认证包导入到主文件中。目录结构如下,
和docker文件内容如下,
FROM golang
COPY ./ /Users/venkat/go/src/github.com/Athavankanapuli/interflow_api/loginservice/app
WORKDIR /Users/venkat/go/src/github.com/Athavankanapuli/interflow_api/loginservice/app
RUN go get github.com/go-kit/kit/endpoint
RUN go get golang.org/x/oauth2
RUN go get github.com/go-kit/kit/endpoint
RUN go get gopkg.in/mgo.v2/bson
RUN go install ./...
RUN go build
EXPOSE 8080
CMD [ "./app" ]
docker 正确执行所有导入,但无法读取身份验证包。 $GOPATH 指的是 /Users/venkat/go 终端命令 docker build -t interflow . 给出以下错误输出,
如何修复此错误并使本地身份验证包包含在构建中?或者有没有其他更好的方法来编写 dockerfile 以进行正确的构建?
【问题讨论】:
-
您是在构建/容器中设置
$GOPATH,还是仅在您的笔记本电脑上设置? -
只在笔记本电脑上设置
-
@BMitch 即使我在 dockerfile 中使用 ENV GOPATH 设置了 $GOPATH ,也会遇到 fmt 等标准库包的导入错误
标签: docker go dockerfile