docker 内的 Golang 错误

Golang error inside docker

我在构建我的 go 应用程序时在 docker 中遇到一个奇怪的错误:

./main.go:31:9: cannot use db (type *"github.com/khwerhahn/somerepo/vendor/github.com/jinzhu/gorm".DB) as type *"app/vendor/github.com/jinzhu/gorm".DB in argument to Migrate  
The command '/bin/sh -c go-wrapper install' returned a non-zero code: 2

有人可以提示我正确的方向吗,因为该应用程序在本地运行得很好。它就在 docker 容器内。我使用 glide 来管理依赖项。

Docker 文件:

FROM golang:1.9
WORKDIR /go/src/app
COPY . .
RUN go-wrapper download
RUN go-wrapper install

CMD ["go-wrapper", "run"]

//// 编辑 这就是我的结构的样子。 Glide 管理供应商文件夹。 docker 构建完成剩下的工作。

因为go getgo-wrapper download调用了。这会从远程获取依赖项,而不是在供应商文件夹中查找。

如果您的库已经出售并且代码在 vendor 文件夹中,您只需 go rungo install

为什么你需要 go-wrapper 就可以了。

RUN glide install
RUN go install
WORKDIR "../bin"
RUN myapp