docker - docker 内部的 Golang 错误

标签 docker go go-gorm

在构建我的 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 管理 vendor 文件夹。 docker build 完成剩下的工作。

enter image description here

最佳答案

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

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

既然可以,为什么还需要 go-wrapper。

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

关于docker - docker 内部的 Golang 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47618758/

相关文章:

docker - DBPedia聚焦docker返回curl:(56)接收失败:对等连接重置

node.js - 与 Docker 的套接字连接最初成功然后失败

node.js - 如何使用在 docker 中运行的 Node 在微服务架构中初始化 postgres 数据库表

arrays - 在运行时填充长度设置的 slice 时,我是否绝对需要两个循环,一个用于确定长度,一个用于填充?

postgresql - 如何使用 Gorm (go struct) 将 Postman(json 类型)中的值插入到 Postgres

sql - Gorm Join表查询

curl - 在运行容器时成功使用 curl

google-app-engine - GAE/去 : Namespace not working

go - 简明地深复制一片?

mysql - GORM 中的多个一对多关系