docker中的Golang错误
在构build我的应用程序时,我在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
来pipe理依赖关系。
Dockerfile:
FROM golang:1.9 WORKDIR /go/src/app COPY . . RUN go-wrapper download RUN go-wrapper install CMD ["go-wrapper", "run"]
////编辑这是我的结构看起来如何。 Glide
pipe理供应商文件夹。 dockerbuild设rest。
这是因为go get
被go-wrapper download
调用。 这将从远程获取依赖关系,而不是查看供应商文件夹。
如果您的库已经出售,并且代码位于vendor
文件夹中,则您只需执行“ go run
或“ go install
。
你为什么需要去包装呢?
RUN glide install RUN go install WORKDIR "../bin" RUN myapp