2017-05-26 124 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軟件包安裝到您從應用程序調用的供應商目錄中。

相關問題