Golang 開発者にとって、パブリック リポジトリを扱う場合、Go モジュールの管理とインストールは通常簡単です。ただし、プライベート Go モジュールを操作する必要がある場合、事態はさらに複雑になります。
Go モジュール ツールチェーンには、プライベート GOPROXY を使用する以外にプライベート モジュールを操作するための組み込みメカニズムが提供されておらず、適切にセットアップして維持することは、すべての開発者や組織にとって選択肢ではありません。一部のパッケージ リポジトリ サービスはプライベート Go モジュールの操作をサポートしていますが、一般に開発者に最もクリーンなエクスペリエンスを提供しません。
このため、ほとんどの場合、go get、go install、または go mod download を使用するときに、プライベート リポジトリでの認証を管理するために、いくつかの Go 環境変数と組み合わせた複雑な Git 構成 (.netrc または .gitconfig) を手配することになります。 .
これらの Git 構成の問題は、すべての開発者にとって明らかではなく、ファイルシステムにプレーンテキストの資格情報を保存する必要があるため安全ではない可能性があることです。これらの問題は、CI/CD システムの構成や Docker イメージの構築などの場合にさらに問題になります。
長年の Golang 開発者 (Go モジュールが存在すらしなかった時代からの開発者) として、私たちはプライベート Go ライブラリの操作がパブリック ライブラリの操作と同じくらい簡単かつ強力になる時代を常に夢見てきました。
プライベート Go ライブラリを開発して GitHub にプッシュし、GOPROXY 環境変数を設定するだけで、すぐにプロジェクトのソース コードから新しい変更を取得 -u できることを想像してください。複雑で安全でない Git 構成、セルフホスト型 GOPROXY メンテナンス、複雑でエラーが発生しやすい公開ワークフローは必要ありません。また、ローカルの開発マシン、Dockerfile、CI/CD 環境にも同じセットアップが必要です。
goproxy.dev は、GitHub と統合して シームレスな Go プライベート モジュールのインストールを提供するプライベート GOPROXY サービスです。
GitHub アカウントで goproxy.dev にサインインし、使用するプライベート リポジトリへのアクセスを許可し、GOPROXY および GONOSUMDB 環境変数をエクスポートするだけです。
export GOPROXY=TOKEN@proxy.goproxy.dev,proxy.golang.org,direct export GONOSUMDB=github.com/your-organization
これらの Go 環境変数は、シェル設定 (.zshrc、.bashrc など) から直接設定するか、go env -w を使用して設定できます。
その後、通常の go コマンドを実行して、プライベート モジュールをインストールおよびダウンロードできます。
go get github.com/your-organization/go-module@v2.0.0 go install github.com/your-organization/go-module/cmd ... go mod download
goproxy.dev との統合には、2 つの環境変数を設定するだけで済みます。 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 URL を含む GitHub アクションのシークレットを設定し、ワークフローから使用するだけです:
jobs: build: - run: | go mod download go build . env: GOPROXY: ${{ secrets.PRIVATE_GOPROXY }} GONOSUMDB: github.com/your-organization
goproxy.dev を使用すると、Go でライブラリを使用するときに最高の開発者エクスペリエンスが得られます。オープンソースのパブリック ライブラリに依存しているか、組織のプライベート モジュールに依存しているかに関係なく、統合されたワークフローが得られます。つまり、GOPROXY 環境変数を設定し、特定のバージョン、Git ブランチ、またはコミットの依存関係を取得します。
14 日間の無料トライアルにサインアップして、詳細を確認し、今すぐ goproxy.dev を使い始めましょう。
以上がプライベート Go モジュールの管理とインストールが簡単の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。