Maison  >  Article  >  développement back-end  >  Gérez et installez facilement vos modules Go privés

Gérez et installez facilement vos modules Go privés

王林
王林original
2024-08-19 22:33:32361parcourir

Easily manage and install your private Go modules

Pour les développeurs Golang, la gestion et l'installation des modules Go sont généralement simples lorsqu'il s'agit de référentiels publics. Cependant, les choses deviennent plus délicates lorsque vous devez travailler avec des modules Go privés.

La chaîne d'outils des modules Go ne fournit pas de mécanisme intégré pour travailler avec des modules privés au-delà de l'utilisation d'un GOPROXY privé, et en configurer et en maintenir un correctement n'est pas une option pour tous les développeurs ou organisations. Certains services de référentiel de packages prennent en charge l'utilisation de modules Go privés, mais n'offrent généralement pas l'expérience la plus propre aux développeurs.

Pour cette raison, dans la plupart des cas, nous finissons par organiser des configurations Git complexes (.netrc ou .gitconfig) combinées à certaines variables d'environnement Go pour gérer l'authentification avec nos référentiels privés lors de l'utilisation de go get, go install ou go mod download .

Le problème avec ces configurations Git est qu'elles ne sont pas évidentes pour tous les développeurs et qu'elles peuvent ne pas être sécurisées car elles peuvent nécessiter le stockage d'informations d'identification en texte brut dans le système de fichiers. Ces problèmes deviennent encore plus problématiques lors de la configuration des systèmes CI/CD, de la création d'images Docker, etc.

Présentation de goproxy.dev

En tant que développeurs Golang de longue date (venant de l'époque où les modules Go n'existaient même pas), nous avons toujours rêvé d'une époque où travailler avec des bibliothèques Go privées serait aussi simple et puissant que de travailler avec des bibliothèques publiques.

Imaginez développer et pousser vos bibliothèques Go privées sur GitHub, et allez immédiatement récupérer les nouvelles modifications du code source de votre projet en définissant uniquement la variable d'environnement GOPROXY. Pas de configurations Git délicates et non sécurisées, pas de maintenance GOPROXY auto-hébergée, pas de workflows de publication complexes et sujets aux erreurs, et la même configuration pour votre machine de développement locale, Dockerfile et votre environnement CI/CD.

Dites bonjour à goproxy.dev, un service GOPROXY privé qui s'intègre à GitHub pour vous fournir une installation transparente de modules privés Go.

Comment configurer goproxy.dev dans votre flux de travail de développement

Connectez-vous simplement à goproxy.dev avec votre compte GitHub, donnez accès aux référentiels privés que vous utiliserez et exportez vos variables d'environnement GOPROXY et GONOSUMDB.

export GOPROXY=TOKEN@proxy.goproxy.dev,proxy.golang.org,direct
export GONOSUMDB=github.com/your-organization

Ces variables d'environnement Go peuvent être définies directement à partir de la configuration de votre shell (.zshrc, .bashrc, etc.) ou en utilisant go env -w.

Ensuite, vous pouvez exécuter vos commandes go habituelles pour installer et télécharger vos modules privés.

go get github.com/your-organization/go-module@v2.0.0
go install github.com/your-organization/go-module/cmd
...
go mod download

Comment utiliser goproxy.dev pour créer des images Docker

L'intégration avec goproxy.dev ne nécessite que la configuration de deux variables d'environnement. La meilleure façon de le faire lors d'une build Docker est d'utiliser la fonctionnalité Docker build secrets.

Dans votre 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 .

Et la course :

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

Comment utiliser goproxy.dev à partir des actions GitHub

Configurez simplement un secret pour vos actions GitHub contenant votre URL GOPROXY et utilisez-le à partir de vos workflows :

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

 Simplifiez votre flux de travail de développement Go dès aujourd'hui

Avec goproxy.dev, vous bénéficierez de la meilleure expérience de développeur lors de la consommation de bibliothèques avec Go. Que vous dépendiez de bibliothèques publiques open source ou de modules privés de votre organisation, vous disposerez d'un flux de travail unifié : configurez votre variable d'environnement GOPROXY et récupérez les dépendances pour une version spécifique, une branche Git ou un commit.

Apprenez-en plus et démarrez avec goproxy.dev dès aujourd'hui en vous inscrivant à notre essai gratuit de 14 jours.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn