"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Gerencie e instale facilmente seus módulos Go privados

Gerencie e instale facilmente seus módulos Go privados

Publicado em 23/08/2024
Navegar:115

Easily manage and install your private Go modules

Para desenvolvedores Golang, gerenciar e instalar módulos Go geralmente é simples ao lidar com repositórios públicos. No entanto, as coisas ficam mais complicadas quando você precisa trabalhar com módulos Go privados.

A cadeia de ferramentas de módulos Go não fornece um mecanismo integrado para trabalhar com módulos privados além de usar um GOPROXY privado, e configurar e manter um adequadamente não é uma opção para todos os desenvolvedores ou organizações. Alguns serviços de repositório de pacotes suportam o trabalho com módulos Go privados, mas geralmente não fornecem a experiência mais limpa para desenvolvedores.

Por esse motivo, na maioria dos casos, acabamos organizando configurações complexas do Git (.netrc ou .gitconfig) combinadas com algumas variáveis ​​de ambiente Go para gerenciar a autenticação com nossos repositórios privados ao usar go get, go install ou go mod download .

O problema com essas configurações do Git é que elas não são evidentes para todos os desenvolvedores e podem ser inseguras, pois podem exigir o armazenamento de credenciais de texto simples no sistema de arquivos. Esses problemas se tornam ainda mais problemáticos ao configurar sistemas CI/CD, construir imagens Docker, etc.

Apresentando goproxy.dev

Como desenvolvedores Golang de longa data (vindos da época em que os módulos Go nem existiam), sempre sonhamos com uma época em que trabalhar com bibliotecas Go privadas fosse tão fácil e poderoso quanto trabalhar com bibliotecas públicas.

Imagine desenvolver e enviar suas bibliotecas Go privadas para o GitHub e imediatamente obter -u as novas alterações do código-fonte do seu projeto, definindo apenas a variável de ambiente GOPROXY. Sem configurações Git complicadas e inseguras, sem manutenção GOPROXY auto-hospedada, sem fluxos de trabalho de publicação complexos e propensos a erros e a mesma configuração para sua máquina de desenvolvimento local, Dockerfile e ambiente CI/CD.

Diga olá ao goproxy.dev, um serviço GOPROXY privado que se integra ao GitHub para fornecer a você instalação perfeita de módulos privados Go.

Como configurar goproxy.dev em seu fluxo de trabalho de desenvolvimento

Basta fazer login em goproxy.dev com sua conta GitHub, conceder acesso aos repositórios privados que você usará e exportar suas variáveis ​​de ambiente GOPROXY e GONOSUMDB.

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

Essas variáveis ​​de ambiente Go podem ser definidas diretamente na configuração do seu shell (.zshrc, .bashrc, etc.) ou usando go env -w.

Em seguida, você pode executar seus comandos go habituais para instalar e baixar seus módulos privados.

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

Como usar goproxy.dev para construir imagens Docker

A integração com goproxy.dev requer apenas a configuração de duas variáveis ​​de ambiente. A melhor maneira de fazer isso durante uma compilação do Docker é usando o recurso de segredos de compilação do Docker.

Dentro do seu 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 .

E a corrida:

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

Como usar goproxy.dev do GitHub Actions

Basta configurar um segredo para suas ações do GitHub contendo seu URL GOPROXY e usá-lo em seus fluxos de trabalho:

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

 Simplifique seu fluxo de trabalho de desenvolvimento Go hoje mesmo

Com goproxy.dev você terá a melhor experiência de desenvolvedor ao consumir bibliotecas com Go. Quer você dependa de bibliotecas públicas de código aberto ou de módulos privados de sua organização, você terá um fluxo de trabalho unificado: configure sua variável de ambiente GOPROXY e obtenha dependências para uma versão específica, branch Git ou commit.

Saiba mais e comece a usar goproxy.dev hoje, inscrevendo-se em nosso teste gratuito de 14 dias.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/goproxydev/easily-manage-and-install-your-private-go-modules-g74?1 Se houver alguma violação, entre em contato com [email protected] para excluir isto
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3