2016-04-09 16 views
2

Dolaplarda yeniyim ve basit bir Go uygulaması için docker kabı yapmaya çalışıyorum. Bağımlılık yönetimi için Godep kullanıyorum. İşte Godep, docker kabında çalışmıyor

benim Dockerfile geçerli:

FROM pottava/golang:1.5 

RUN go get github.com/tools/godep \ 
     && rm -rf /go/pkg /go/src 

ADD ./ /go 

ENV GOPATH /go 
RUN godep go build -v -o ./bin/main ./src/main.go 

Ben görüntü oluşturmaya çalıştığınızda, aşağıdaki hatayı alıyorum:

... 
---> 5cb6dd001eb3 
Removing intermediate container 15eb0b298adb 
Step 5 : ENV GOPATH /go 
---> Running in 1c0043c3e963 
---> 6cd0498af200 
Removing intermediate container 1c0043c3e963 
Step 6 : RUN godep go build -v -o ./bin/main ./src/main.go 
---> Running in af2386d13c9a 
godep: [WARNING]: godep should only be used inside a valid go package directory and 
godep: [WARNING]: may not function correctly. You are probably outside of your $GOPATH. 
godep: [WARNING]: Current Directory: /go 
godep: [WARNING]: $GOPATH: /go 
src/main.go:18:2: cannot find package "github.com/Sirupsen/logrus" in any of: 
    /usr/local/go/src/github.com/Sirupsen/logrus (from $GOROOT) 
    /go/Godeps/_workspace/src/github.com/Sirupsen/logrus (from $GOPATH) 
    /go/src/github.com/Sirupsen/logrus 
... 

cevap

0

Eğer GOPATH ayarlarsanız, bir go workspace tanımlamak anlamına gelir

godep uygulamasının "geçerli bir pakette" yürütülmesi, aşağıdakilerin gerçekleştirilmesi anlamına gelir:

$GOPATH/src/a/package 

GOPATH/src içinde klonlanmış, var olan bir go projesinde godep uyguladığınızdan emin olun.

Basit sınama: Bilgisayarınızda aynı komutu deneyin (yerleşik bir docker görüntüsünde değil) ve çalışırken, Dockerfile dosyanızdaki kurulum ve komutları yeniden oluşturun.