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 get
被go-wrapper download
调用了。这会从远程获取依赖项,而不是在供应商文件夹中查找。
如果您的库已经出售并且代码在 vendor
文件夹中,您只需 go run
或 go install
。
为什么你需要 go-wrapper 就可以了。
RUN glide install
RUN go install
WORKDIR "../bin"
RUN myapp
我在构建我的 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 get
被go-wrapper download
调用了。这会从远程获取依赖项,而不是在供应商文件夹中查找。
如果您的库已经出售并且代码在 vendor
文件夹中,您只需 go run
或 go install
。
为什么你需要 go-wrapper 就可以了。
RUN glide install
RUN go install
WORKDIR "../bin"
RUN myapp