Heim  >  Artikel  >  Backend-Entwicklung  >  Verwalten und installieren Sie ganz einfach Ihre privaten Go-Module

Verwalten und installieren Sie ganz einfach Ihre privaten Go-Module

王林
王林Original
2024-08-19 22:33:32384Durchsuche

Easily manage and install your private Go modules

Für Golang-Entwickler ist die Verwaltung und Installation von Go-Modulen im Umgang mit öffentlichen Repositorys normalerweise unkompliziert. Schwieriger wird es jedoch, wenn Sie mit privaten Go-Modulen arbeiten müssen.

Die Go-Module-Toolchain bietet keinen integrierten Mechanismus für die Arbeit mit privaten Modulen, der über die Verwendung eines privaten GOPROXY hinausgeht, und die ordnungsgemäße Einrichtung und Wartung eines solchen Moduls ist nicht für jeden Entwickler oder jede Organisation eine Option. Einige Paket-Repository-Dienste unterstützen die Arbeit mit privaten Go-Modulen, bieten Entwicklern jedoch im Allgemeinen nicht die sauberste Erfahrung.

Aus diesem Grund arrangieren wir in den meisten Fällen komplizierte Git-Konfigurationen (.netrc oder .gitconfig) in Kombination mit einigen Go-Umgebungsvariablen, um die Authentifizierung mit unseren privaten Repositorys zu verwalten, wenn wir go get, go install oder go mod download verwenden .

Das Problem bei diesen Git-Konfigurationen besteht darin, dass sie nicht für alle Entwickler offensichtlich sind und möglicherweise unsicher sind, da möglicherweise die Speicherung von Klartext-Anmeldeinformationen im Dateisystem erforderlich ist. Diese Probleme werden noch problematischer, wenn CI/CD-Systeme konfiguriert, Docker-Images erstellt usw. werden.

Wir stellen vor: goproxy.dev

Als langjährige Golang-Entwickler (aus einer Zeit, als es Go-Module noch nicht einmal gab) haben wir immer von einer Zeit geträumt, in der die Arbeit mit privaten Go-Bibliotheken genauso einfach und leistungsstark sein würde wie die Arbeit mit öffentlichen.

Stellen Sie sich vor, Sie entwickeln und übertragen Ihre privaten Go-Bibliotheken auf GitHub und holen sich sofort die neuen Änderungen aus dem Quellcode Ihres Projekts, indem Sie nur die Umgebungsvariable GOPROXY festlegen. Keine kniffligen und unsicheren Git-Konfigurationen, keine selbst gehostete GOPROXY-Wartung, keine komplexen und fehleranfälligen Veröffentlichungsworkflows und das gleiche Setup für Ihre lokale Entwicklungsmaschine, Dockerfile und CI/CD-Umgebung.

Begrüßen Sie goproxy.dev, einen privaten GOPROXY-Dienst, der in GitHub integriert ist, um Ihnen eine nahtlose Installation privater Go-Module zu ermöglichen.

So richten Sie goproxy.dev in Ihrem Entwicklungsworkflow ein

Melden Sie sich einfach mit Ihrem GitHub-Konto bei goproxy.dev an, gewähren Sie Zugriff auf die privaten Repositorys, die Sie verwenden werden, und exportieren Sie Ihre GOPROXY- und GONOSUMDB-Umgebungsvariablen.

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

Diese Go-Umgebungsvariablen können direkt über Ihre Shell-Konfiguration (.zshrc, .bashrc usw.) oder mit go env -w festgelegt werden.

Dann können Sie Ihre üblichen Go-Befehle ausführen, um Ihre privaten Module zu installieren und herunterzuladen.

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

So verwenden Sie goproxy.dev zum Erstellen von Docker-Images

Für die Integration mit goproxy.dev müssen lediglich zwei Umgebungsvariablen eingerichtet werden. Der beste Weg, dies während eines Docker-Builds zu tun, ist die Verwendung der Docker-Build-Secrets-Funktion.

In Ihrer Docker-Datei:

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 .

Und der Lauf:

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

So verwenden Sie goproxy.dev aus GitHub Actions

Konfigurieren Sie einfach ein Geheimnis für Ihre GitHub-Aktionen, das Ihre GOPROXY-URL enthält, und verwenden Sie es in Ihren Workflows:

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

 Vereinfachen Sie noch heute Ihren Go-Entwicklungsworkflow

Mit goproxy.dev haben Sie die beste Entwicklererfahrung, wenn Sie Bibliotheken mit Go nutzen. Unabhängig davon, ob Sie auf öffentliche Open-Source-Bibliotheken oder private Module Ihrer Organisation angewiesen sind, verfügen Sie über einen einheitlichen Arbeitsablauf: Richten Sie Ihre GOPROXY-Umgebungsvariable ein und rufen Sie Abhängigkeiten für eine bestimmte Version, einen Git-Zweig oder ein Commit ab.

Erfahren Sie noch heute mehr und beginnen Sie mit goproxy.dev, indem Sie sich für unsere 14-tägige kostenlose Testversion anmelden.

Das obige ist der detaillierte Inhalt vonVerwalten und installieren Sie ganz einfach Ihre privaten Go-Module. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn