簡體   English   中英

docker-compose找不到包

[英]docker-compose cannot find package

我正在GO中編寫一個簡單的應用程序,我有這個文件夾結構

在此輸入圖像描述

docker-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

每次我運行docker-compose時,都會收到以下錯誤消息:

test_server | controllers / users.go:4:3:在以下任何一個中找不到包“_ / go / src / test_server / vendor / github.com / gin-gonic / gin”:test_server |
/usr/local/go/src/_/go/src/test_server/vendor/github.com/gin-gonic/gin(來自$ GOROOT)test_server |
/go/src/_/go/src/test_server/vendor/github.com/gin-gonic/gin(來自$ GOPATH)

它指的是控制器包。 我正在使用github.com/kardianos/govendor來提供我的軟件包。 你知道發生了什么嗎?

幾個小時后,我終於可以解決它了。 導致我使用的是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"]

你需要告訴去哪里找到包裹:

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

或者安裝了安裝了正確軟件包的Dockerfile(推薦)

我認為這是因為您更新的代碼正在運行安裝,而不是運行您的舊代碼運行。

您需要將額外的golang軟件包安裝到您從應用程序調用的供應商目錄中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM