Как я могу кэшировать golang пакетов для сборки артефактов для docker сборки? - PullRequest
0 голосов
/ 01 марта 2020

Типичный шаблон go docker выглядит следующим образом:

# cache modules
COPY go.mod .
COPY go.sum .
RUN go mod download

COPY . .
RUN make

Это создаст (кэшированный) слой для загруженных пакетов перед компиляцией фактических источников. Было бы замечательно не только загружать, но и компилировать пакеты перед добавлением приложения для дальнейшей ускорения повторных сборок.

Как принудительно скомпилировать все загруженные пакеты независимо от родительского приложения ?

1 Ответ

0 голосов
/ 02 марта 2020

Цель использования go mod download в docker сборке - избежать ожидания компиляции источников зависимостей. Поскольку вы хотите избежать этого поведения, вы можете заменить эту строку на

RUN go get -d -v
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...