Скачать Go-модуль из реестра Cloud Registry
Для скачивания Go-модуля необходима роль cloud-registry.artifacts.puller или выше.
Загрузка Go-модулей выполняется штатной командой go — реестр Cloud Registry работает как Go-прокси и реализует Module Proxy Protocol
Настройка окружения
-
Укажите реестр как прокси Go-модулей и отключите проверку контрольных сумм через публичную Go checksum database
для Go-модулей из вашего реестра:export GOPROXY=https://registry.yandexcloud.net/go/<идентификатор_реестра>,https://proxy.golang.org,direct export GONOSUMDB=registry.yandexcloud.net/*Где:
GOPROXY— список Go-прокси через запятую. Командаgoищет Go-модуль последовательно в каждом источнике:https://registry.yandexcloud.net/go/<идентификатор_реестра>— ваш реестр Cloud Registry;https://proxy.golang.org— публичный Go-прокси для модулей из открытых репозиториев;direct— прямое обращение к VCS-репозиторию (например, GitHub), если Go-модуль не найден ни в одном из прокси.
GONOSUMDB— шаблоны путей Go-модулей, для которых пропускается проверка контрольных сумм.
-
Передайте учетные данные для аутентификации в реестре. Команда
goподдерживает только Basic-аутентификацию, рекомендуемый способ передачи учетных данных — файл~/.netrc.IAM-токенAPI-ключДобавьте в файл
~/.netrcстроку:machine registry.yandexcloud.net login iam password <IAM-токен>Добавьте в файл
~/.netrcстроку:machine registry.yandexcloud.net login api_key password <API-ключ>Примечание
Файл
~/.netrcдолжен быть доступен на чтение только владельцу. Установите права доступа:chmod 600 ~/.netrc
Добавление Go-модуля в проект
-
Перейдите в корень Go-проекта, в котором находится файл
go.mod. -
Добавьте Go-модуль нужной версии:
go get registry.yandexcloud.net/go/<идентификатор_реестра>/<имя_модуля>@<версия>Например:
go get registry.yandexcloud.net/go/e5o6a2blpkb6********/mymodule@v1.0.0Команда скачает Go-модуль в локальный кеш и добавит запись о нем в
go.modиgo.sum:go: added registry.yandexcloud.net/go/e5o6a2blpkb6********/mymodule v1.0.0 -
(Опционально) Если Go-модуль уже используется в коде через директиву
import, синхронизируйтеgo.modиgo.sum:go mod tidy -
(Опционально) Скачайте все зависимости проекта в локальный кеш без сборки:
go mod download