2016-04-09 4 views
2

Я новичок в докеров и пытаюсь сделать контейнер для докеров для простого приложения Go. Я использую Godep для управления зависимостями.Godep не работает в контейнере докеров

Вот мой Dockerfile:

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 

Когда я пытаюсь построить образ, я получаю следующее сообщение об ошибке:

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

ответ

0

Если вы установили GOPATH, это означает, что вы определяете go workspace

Выполнение справки "в действительном пакете" означает его выполнение в:

$GOPATH/src/a/package 

Удостоверьтесь, что вы выполняете godep в рамках существующего проекта go, клонированного в GOPATH/src.

Простой тест: попробуйте выполнить ту же самую команду на вашем компьютере (не в построении докеры), а когда она работает, воспроизведите настройки и команды в вашем файле Docker.

 Смежные вопросы

  • Нет связанных вопросов^_^