2017-05-26 123 views
3

我正在写在GO一个简单的应用程序,我有这样的文件夹结构搬运工,撰写找不到包(golang)

enter image description here

泊坞窗,compose.yml文件内容是:

version: '2' 
services: 
    db: 
    image: rethinkdb:latest 
    ports: 
     - "38080:8080" 
     - "38015:28015" 
     - "39015:29015" 
    api: 
    image: golang:1.8-alpine 
    volumes: 
     - .:/go/src/test_server/ 
    working_dir: /go/src/test_server 
    command: go run server.go 
    container_name: test_server 
    ports: 
     - "8085:8085" 
    links: 
     - db 
    tty: true 

每次我跑码头工人,组成了我收到此错误信息:

test_server | controllers/users.go:4:3: cannot find package "_/go/src/test_server/vendor/github.com/gin-gonic/gin" in any of: test_server |
/usr/local/go/src/_/go/src/test_server/vendor/github.com/gin-gonic/gin (from $GOROOT) test_server |
/go/src/_/go/src/test_server/vendor/github.com/gin-gonic/gin (from $GOPATH)

它指的是控制器包。我正在使用github.com/kardianos/govendor来供应我的软件包。你知道发生了什么事吗?

回答

0

你需要告诉去哪里找到包:安装了正确的软件包

api: 
    ... 
    environment: 
    - GOPATH=/go/src/test_server 

还是有Dockerfile(推荐)

+0

我做到了,但它不起作用,现在的错误信息是这样的: test_server | ers/users.go:4:3:无法在以下任何位置找到软件包“github.com/gin-gonic/gin”: test_server | /usr/local/go/src/github.com/gin-gonic/gin(来自$ GOROOT) test_server | /go/src/test_server/src/github.com/gin-gonic/gin(from $ GOPATH) 我尝试过使用Dockerfile,因为我虽然是更优雅的解决方案,但每次构建它时,都会出现错误: 这是Dockerfile内容: FROM golang:1.8高山 RUN去拿github.com/gin-gonic/gin EXPOSE 8085 – utiq

+0

https://www.evernote.com/l/ADkxl1UoBy1IsYPq4u_YhyzR-N8FfIwZQCs – utiq

1

多小时,我终于可以修复它之后。 导致我使用的docker golang版本没有包含git。我应该使用golang:1.8

我修改Dockerfile这样,现在,它就像一个魅力

FROM golang:1.8 

RUN go get github.com/gin-gonic/gin 

WORKDIR /go/src/app 
COPY . . 

RUN go install -v 

CMD ["app"] 
0

我想这是因为更新的代码运行去安装,而不是去跑,你的旧代码为运行。

您需要将额外的golang软件包安装到您从应用程序调用的供应商目录中。

相关问题