Size: a a a

2020 April 10

VS

Vadim Sokoltsov in Go-go!
Всем привет!
Подскажите пожалуйста, куда копать
Делают Dockerfile с приложением:
FROM golang:1.13

WORKDIR /app

COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .

RUN go build -o ./server .


Однако go mod download не устанавливает зависимости в /go/bin. При этом установка руками добавляет зависимость.
Запускаю все это через docker-compose
В чем может быть проблема? Как правильно сконфигурировать Dockerfile для таких целей?

Заранее благодарю!
источник

ВТ

Виктор Титов... in Go-go!
А go mod download запускается из той же директории, куда скопированы файлы?
источник

VS

Vadim Sokoltsov in Go-go!
Виктор Титов
А go mod download запускается из той же директории, куда скопированы файлы?
Ну да
workdir же
источник

а

а кто это in Go-go!
Виктор Титов
А go mod download запускается из той же директории, куда скопированы файлы?
go mod запускается там, где есть go.mod
источник

ВТ

Виктор Титов... in Go-go!
а кто это
go mod запускается там, где есть go.mod
Да, это я и пытался сказать. А воркдир не заметил, извините
источник

ВС

Владимир Столяров... in Go-go!
Так go mod download скачивает только библиотеки. Если нужен ещё и бинарник, то это go install
источник

VS

Vadim Sokoltsov in Go-go!
Владимир Столяров
Так go mod download скачивает только библиотеки. Если нужен ещё и бинарник, то это go install
Вот, ага
Скаченные пакеты лежат в /go/pkg
Однако go install из директории /app не дает никакого результата
источник

ВС

Владимир Столяров... in Go-go!
go install надо делать прямо с путем до папки с main
источник

C

Calculon in Go-go!
Как go mod download берет данные из кеша, если команда всегда выполняется в build-образе, в котором кеша нет?
источник

C

Calculon in Go-go!
(я про докер)
источник

а

а кто это in Go-go!
Calculon
Как go mod download берет данные из кеша, если команда всегда выполняется в build-образе, в котором кеша нет?
есть
источник

а

а кто это in Go-go!
использует докеровский кеш
источник

C

Calculon in Go-go!
он кешит все образы использующиеся во время сборки?
источник

а

а кто это in Go-go!
инкрементально
источник

C

Calculon in Go-go!
окей спс
источник

VS

Vadim Sokoltsov in Go-go!
Владимир Столяров
go install надо делать прямо с путем до папки с main
как мне их вытянуть из /go/pkg?
руками проходить по всем папкам и делать go install?
источник

ЛА

Локоть Анатолий... in Go-go!
а кто это
использует докеровский кеш
Как это работает? Образ стартует с пустой файловой системой. Как я понимаю, вариант с кешированием через хост через пробрасыванием папки с go modules; либо стартовать не стандартный go образ, а с предзагруженными модулями
источник

C

Calculon in Go-go!
Локоть Анатолий
Как это работает? Образ стартует с пустой файловой системой. Как я понимаю, вариант с кешированием через хост через пробрасыванием папки с go modules; либо стартовать не стандартный go образ, а с предзагруженными модулями
видимо стартует не с пустой
источник

C

Calculon in Go-go!
Calculon
видимо стартует не с пустой
ну не видимо а точно
источник

а

а кто это in Go-go!
Локоть Анатолий
Как это работает? Образ стартует с пустой файловой системой. Как я понимаю, вариант с кешированием через хост через пробрасыванием папки с go modules; либо стартовать не стандартный go образ, а с предзагруженными модулями
если вы соберёте образ, а потом ещё раз попробуете его собрать , то докер будет использовать кеш
источник