Как собрать модули go в докере?

Я пытаюсь построить свой проект go в контейнере докеров.

Вот докерфайл:

FROM golang:1.12.9 as builder

ENV GO111MODULE=on
WORKDIR /app

COPY go.mod .
COPY go.sum .

RUN go mod download

COPY . .

RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o encashment


FROM scratch
COPY --from=builder /app/encashment /encashment/
EXPOSE 8080
ENTRYPOINT ["/app/encashment"]

У меня есть только одна зависимость в go.mod:

require github.com/gorilla/mux v1.7.3

Если я удалю gorilla/mux локально и вызову go mod download, все будет нормально. Но когда я вызываю docker build ., он возвращается

go: finding github.com/gorilla/mux v1.7.3
go: github.com/gorilla/[email protected]: unknown revision v1.7.3
go: error loading module requirements

Как заставить это работать?
UPD: Вот кусок вывода tcpdump:

19:00:00.220102 IP 172.17.0.2.43627 > dns.google.domain: 15472+ A? github.com. (28)
19:00:00.220115 IP 172.17.0.2.43627 > dns.google.domain: 64629+ AAAA? github.com. (28)
19:00:02.969391 IP 172.17.0.1.38261 > 239.255.255.250.1900: UDP, length 172
19:00:03.971322 IP 172.17.0.1.38261 > 239.255.255.250.1900: UDP, length 172
19:00:04.971794 IP 172.17.0.1.38261 > 239.255.255.250.1900: UDP, length 172
19:00:05.221952 IP 172.17.0.2.40395 > dns.google.domain: 15472+ A? github.com. (28)
19:00:05.221992 IP 172.17.0.2.40395 > dns.google.domain: 64629+ AAAA? github.com. (28)
19:00:05.970002 IP 172.17.0.1.mdns > 224.0.0.251.mdns: 0 PTR (QM)? _googlecast._tcp.local. (40)
19:00:05.970263 IP 172.17.0.1.mdns > 224.0.0.251.mdns: 0 PTR (QM)? _googlecast._tcp.local. (40)
19:00:05.972573 IP 172.17.0.1.38261 > 239.255.255.250.1900: UDP, length 172
19:00:06.971288 IP 172.17.0.1.mdns > 224.0.0.251.mdns: 0 PTR (QM)? _googlecast._tcp.local. (40)
19:00:06.971446 IP 172.17.0.1.mdns > 224.0.0.251.mdns: 0 PTR (QM)? _googlecast._tcp.local. (40)
19:00:08.972581 IP 172.17.0.1.mdns > 224.0.0.251.mdns: 0 PTR (QM)? _googlecast._tcp.local. (40)
19:00:08.972736 IP 172.17.0.1.mdns > 224.0.0.251.mdns: 0 PTR (QM)? _googlecast._tcp.local. (40)
19:00:10.224125 IP 172.17.0.2.43627 > dns.google.domain: 15472+ A? github.com. (28)
19:00:10.224171 IP 172.17.0.2.43627 > dns.google.domain: 64629+ AAAA? github.com. (28)


person Rob Lucci    schedule 27.08.2019    source источник
comment
Пытался воспроизвести, но это сработало на моей сборке Docker: › Шаг 6/12: ЗАПУСТИТЬ go скачать мод › перейти: найти github.com/gorilla/mux v1.7.3 › Шаг 7/12: КОПИРОВАТЬ. . Вы уверены, что вашему Docker Engine запрещен доступ в Интернет из-за настроек прокси-сервера?   -  person prometherion    schedule 27.08.2019
comment
@prometherion Я не знаю, как это точно проверить, но я добавил вывод tcpdump -i docker0   -  person Rob Lucci    schedule 27.08.2019
comment
Спасибо за go mod download после копирования только .mod и .sum я как сумасшедший перевыбирал файлы. Теперь кеш работает.   -  person Karl Pokus    schedule 09.05.2020


Ответы (1)


Что ж, спасибо @prometherion. Проблема заключалась в отсутствии доступа в интернет из контейнера докеров. Этот ответ SO сработал для меня. Думаю, мне следует создать задачу в репозитории golang и попросить переработать это сообщение об ошибке.

person Rob Lucci    schedule 27.08.2019
comment
отлично, рад, что вы решили :) пожалуйста, поставьте +1 к моему комментарию, так как вы нашли его полезным! - person prometherion; 27.08.2019