Попытка установить зависимости, используя dep в docker - PullRequest
0 голосов
/ 30 сентября 2018

Я создал файл Docker, в котором я установил golang dep tool, который будет использоваться для установки зависимостей, требуемых проектом golang.Я был в состоянии установить инструмент.Но не удалось установить зависимости с помощью этого инструмента.Я не уверен, как настроить средство dep для запуска команды dep в образе docker, которая установит все зависимости, необходимые для проекта golang

. Я использую приведенную ниже команду для запуска средства dep, и она работает на локальном компьютере.

# initialize the project and install dependencies
RUN dep init

Я всегда получаю сообщение об ошибке:

Ошибка инициализации: невозможно определить путь импорта для корневого проекта / go: / go не находится ни в одной GOPATH / src

Теперь я не знаю, нужно ли мне указать путь к двоичным файлам или как мне этого добиться.Существуют учебные пособия по созданию файла Docker для создания проекта golang, но в Интернете нет ничего, чтобы установить зависимости с помощью инструмента golang dep.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Вам нужно изменить каталог на каталог вашего проекта.Кроме того, для получения зависимостей у вас, как правило, уже есть Gopkg.toml, а Gopkg.lock - dep init используется ТОЛЬКО при переходе из проекта, в котором использовался другой инструмент вендоринга, вообще не было вендоров или выначать проект с нуля.

Подводя итог, я бы сделал что-то вроде этого:

FROM golang:latest
RUN go get -u github.com/golang/dep/cmd/dep \
&&  mkdir /go/src/github.com/you \
&&  git clone https://github.com/you/yourproject /go/src/github.com/you/yourproject

WORKDIR /go/src/github.com/you/yourproject

RUN dep ensure -v
&&  go build

CMD ["./yourproject"]
0 голосов
/ 30 сентября 2018

Вот пример Dockerfile с dep:

FROM golang:latest 

LABEL version="1.0"

RUN mkdir /go/src/app

RUN go get -u github.com/golang/dep/cmd/dep

ADD ./main.go /go/src/app
COPY ./Gopkg.toml /go/src/app

WORKDIR /go/src/app 

RUN dep ensure 
RUN go test -v 
RUN go build

CMD ["./app"]
...