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 [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 との統合には、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 を使い始めましょう。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3