Перейти 1.11 неизвестный путь импорта для собственного пакета в сборке Docker - PullRequest
0 голосов
/ 01 октября 2018

Я перенесу некоторый код для работы с модулями Go 1.11 и могу собрать его из оболочки, но не из Docker.

Соответствующие разделы Dockerfile:

WORKDIR /goscout
COPY ["go.mod", "go.sum", "./"]
RUN GO111MODULE=on go get -u=patch
COPY *.go ./
RUN GO111MODULE=on go build -v -ldflags "-linkmode external -extldflags -static" -o GoScout -a .

КогдаDocker выполняет последнюю команду в приведенном выше фрагменте, я получаю эту ошибку:

can't load package: package github.com/triplestrange/StrangeScout/goscout: unknown import path "github.com/triplestrange/StrangeScout/goscout": ambiguous import: found github.com/triplestrange/StrangeScout/goscout in multiple modules:
    github.com/triplestrange/StrangeScout/goscout (/goscout)
    github.com/triplestrange/StrangeScout v0.3.0 (/go/pkg/mod/github.com/triplestrange/!strange!scout@v0.3.0/goscout)

Я не получаю это в оболочке, поэтому я предполагаю, что не копирую некоторые файлы правильно.Но перед запуском этой команды я скопировал go.mod, go.sum и *.go, поэтому я не знаю, что может отсутствовать.

1 Ответ

0 голосов
/ 02 октября 2018

Убедитесь, что вы правильно инициализировали модули для своего проекта

go mod init github.com/triplestrange/StrangeScout/goscout

, чтобы содержимое вашего go.mod было

module github.com/triplestrange/StrangeScout/goscout

А затем вы можете использовать свой текущий Dockerfile без изменений .

Нет необходимости устанавливать GO111MODULE=on, так как вы запускаете go команды вне $GOPATH

➜ docker build -t goscout .
Sending build context to Docker daemon   47.1kB
Step 1/11 : FROM golang:latest AS builder
 ---> fb7a47d8605b
Step 2/11 : WORKDIR /goscout
 ---> Running in e9786fe5ab53
Removing intermediate container e9786fe5ab53
 ---> 6d101e346175
Step 3/11 : COPY ./ ./
 ---> 7081c0b47dc9
Step 4/11 : RUN go get -d -v ./...
 ---> Running in 3ce69359ae88
go: finding github.com/go-sql-driver/mysql v1.4.0
go: finding github.com/gorilla/mux v1.6.2
go: downloading github.com/gorilla/mux v1.6.2
go: downloading github.com/go-sql-driver/mysql v1.4.0
Removing intermediate container 3ce69359ae88

...


 ---> 3df0dbca80e5
Successfully built 3df0dbca80e5
Successfully tagged goscout:latest
...