«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Легко управляйте и устанавливайте свои частные модули Go.

Легко управляйте и устанавливайте свои частные модули Go.

Опубликовано 23 августа 2024 г.
Просматривать:239

Easily manage and install your private Go modules

Для разработчиков Golang управление и установка модулей Go обычно не составляет труда при работе с общедоступными репозиториями. Однако все становится сложнее, когда вам нужно работать с частными модулями Go.

Инструментарий модулей Go не предоставляет встроенного механизма для работы с частными модулями, кроме использования частного GOPROXY, а правильная настройка и обслуживание такого модуля — вариант не для каждого разработчика или организации. Некоторые службы репозитория пакетов поддерживают работу с частными модулями Go, но, как правило, не предоставляют разработчикам максимально понятных возможностей.

По этой причине в большинстве случаев нам приходится использовать сложные конфигурации Git (.netrc или .gitconfig) в сочетании с некоторыми переменными среды Go для управления аутентификацией в наших частных репозиториях при использовании go get, go install или go mod download. .

Проблема этих конфигураций Git заключается в том, что они не очевидны для всех разработчиков и могут быть небезопасными, поскольку могут требовать хранения учетных данных в виде простого текста в файловой системе. Эти проблемы становятся еще более проблематичными при настройке систем CI/CD, создании образов Docker и т. д.

Представляем goproxy.dev

Как давние разработчики Golang (пришедшие из эпохи, когда модулей Go даже не существовало), мы всегда мечтали о времени, когда работа с частными библиотеками Go будет такой же простой и эффективной, как работа с публичными.

Представьте, что вы разрабатываете и размещаете свои частные библиотеки Go на GitHub, и сразу же получаете новые изменения из исходного кода вашего проекта, просто установив переменную среды GOPROXY. Никаких сложных и небезопасных конфигураций Git, никакого самостоятельного обслуживания GOPROXY, никаких сложных и подверженных ошибкам рабочих процессов публикации, а также одинаковые настройки для вашего локального компьютера разработки, Dockerfile и среды CI/CD.

Поприветствуйте goproxy.dev, частный сервис GOPROXY, который интегрируется с GitHub и предоставляет вам бесшовную установку частных модулей Go.

Как настроить goproxy.dev в рабочем процессе разработки

Просто войдите в goproxy.dev под своей учетной записью GitHub, предоставьте доступ к частным репозиториям, которые вы будете использовать, и экспортируйте переменные среды GOPROXY и GONOSUMDB.

export [email protected],proxy.golang.org,direct
export GONOSUMDB=github.com/your-organization

Эти переменные среды Go можно установить непосредственно из конфигурации вашей оболочки (.zshrc, .bashrc и т. д.) или с помощью go env -w.

Затем вы можете запускать обычные команды go для установки и загрузки ваших частных модулей.

go get github.com/your-organization/[email protected]
go install github.com/your-organization/go-module/cmd
...
go mod download

Как использовать goproxy.dev для создания образов Docker

Для интеграции с goproxy.dev требуется настроить только две переменные среды. Лучший способ сделать это во время сборки Docker — использовать функцию секретов сборки Docker.

Внутри вашего Dockerfile:

COPY go.mod go.sum ./
RUN --mount=type=secret,id=GOPROXY \
    GOPROXY=$(cat /run/secrets/GOPROXY) \
    GONOSUMDB=github.com/your-organization \
    go mod download
RUN go build .

И бег:

GOPROXY="[your GOPROXY value]" docker build --secret id=GOPROXY

Как использовать goproxy.dev из действий GitHub

Просто настройте секрет для своих действий GitHub, содержащий URL-адрес GOPROXY, и используйте его в своих рабочих процессах:

jobs:
  build:
    - run: |
        go mod download
        go build .
      env:
        GOPROXY: ${{ secrets.PRIVATE_GOPROXY }}
        GONOSUMDB: github.com/your-organization

 Упростите рабочий процесс разработки Go уже сегодня

С goproxy.dev вы получите лучший опыт разработки при использовании библиотек с помощью Go. Независимо от того, зависите ли вы от общедоступных библиотек с открытым исходным кодом или частных модулей вашей организации, у вас будет единый рабочий процесс: настройте переменную среды GOPROXY и получите зависимости для конкретной версии, ветки Git или фиксации.

Узнайте больше и начните работу с goproxy.dev сегодня, подписавшись на нашу 14-дневную бесплатную пробную версию.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/goproxydev/easily-manage-and-install-your-private-go-modules-g74?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить это
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3