共有 runner/リモート Mac で go mod download を安定させるため、GOPROXY 連鎖(カンマ→directGOSUMDBGOMODCACHEを決定表と環境変数一覧に整理します(Go 専用・npm/brew とは切り分け)。

自前モジュールプロキシと公共プロキシ連鎖:適用場面の比較

Athens 等の自前実装は監査ログ・帯域内製化・オフラインキャッシュ向き。地域ミラー+proxy.golang.orgdirect の公共連鎖は運用を薄くしたいチームの初期コストが低いです。分岐点は「go.sum を正」としたうえで、プロキシ鮮度をどこまで許容するかです。

方式向くシーン主なトレードオフ
公共連鎖(例:https://地域ミラー,proxy.golang.org,directオープンソース中心・チーム分散・まず速く安定させたい CIミラー鮮度・事業者ポリシーへの依存
自前 GOPROXY(Athens 等)コンプライアンス、固定スナップショット、VPC 内完結スケール・ストレージ・バージョン昇格の運用
ハイブリッド公開は連鎖、*.corp は VCS 直GOPRIVATE/GONOPROXY のパターン設計が必須

共有 runner ではローカル・CI・リモート Mac の go env GOPROXY を揃えるだけで checksum トラブルが減ります。

実行パラメータ一覧(GOPROXY・プライベート・チェックサム・キャッシュ)

頻出キーの意味と設定の型です。URL は組織ポリシーに合わせて差し替えてください。

変数役割設定例・メモ
GOPROXYモジュール ZIP/メタデータの取得順。カンマがフォールバック。https://社内または地域プロキシ,https://proxy.golang.org,direct — 最後の direct で VCS 直叩きへ逃がす。
GOPRIVATEプロキシ/既定 sumdb から除外するモジュールパス(カンマ区切りグロブ)。*.corp.example,github.com/myorg/*
GONOPROXYGOPRIVATE より細かく「プロキシを使わない」パスのみ指定。通常は空でよい。プロキシ経由を禁止したい内部モジュールのみ列挙。
GOSUMDBチェックサム DB。空は既定(sum.golang.org)。閉域のみ off または自前 SumDB の URL(運用責任を明文化)。
GONOSUMDBsumdb 検証をスキップするパス。GOPRIVATE と揃えるか、公開フォークだけ例外など最小限に。
GOMODCACHEモジュールキャッシュの実ディレクトリ。CI では /var/cache/go-mod 等に寄せ、キャッシュアクションのパスと一致させる。
GOFLAGS既定フラグ注入。-mod=readonly で CI の意図しない書き換えを防ぐ。バージョンごと挙動差に注意。
GOINSECUREHTTPS ではない取得を許可(非推奨寄り)。ラボのみ。本番・共有 Mac では証明書修復を優先。
永続化コマンド例(ローカル/リモート Mac)
go env -w GOPROXY='https://<あなたのミラー>,https://proxy.golang.org,direct'
go env -w GOPRIVATE='*.example.corp,github.com/org/private-*'
go env -w GOSUMDB='sum.golang.org'
go env -w GOMODCACHE="$HOME/go/pkg/mod"

GOPROXY 連鎖回源の読み方と切り分け

1

左から順に試行: 404 や一時障害のとき次のエントリへ。最後が direct なら Git/fossil 等へ直行します。

2

GOPRIVATE 一致モジュールはプロキシを迂回: 連鎖に載せても効かないため、社内サーバ可达性と SSH 鍵/netrc を別途確認します。

3

切り分け: 失敗時だけ GOPROXY=direct で再実行し、プロキシ側か VCS 側かを二分します。go mod download -x のログで実 URL を追います。

CI チェックリスト(キャッシュ鍵・並行・タイムアウト)

  • 1. go versiongo env GOOS GOARCH をログに残し、runner 間で固定。
  • 2. キャッシュキーに go.sum のハッシュと Go のマイナー版を含める。
  • 3. go mod download をコンパイル前ジョブに分離し、タイムアウトをネットワーク SLA に合わせて延長。
  • 4. 共有 Mac ではディスク水位と GOMODCACHE サイズを監視(他言語キャッシュとパスを分離)。
GitHub Actions の env 断片(例)
env:
  GOPROXY: https://<mirror>,https://proxy.golang.org,direct
  GOPRIVATE: github.com/myorg/*
  GOMODCACHE: ${{ runner.temp }}/gopath/pkg/mod
  GOFLAGS: -mod=readonly

まとめ:2026年の Go 跨境は「連鎖・プライベート・sumdb・キャッシュ」の四点セット

README と CI に四変数を同じ形で貼ると問い合わせが減ります。自前か公共連鎖かは監査と鮮度の優先で決め、ハイブリッドなら GOPRIVATE を早めに固定してください。

ホームブログ一覧のあと、取得加速の関連読みとしてRust・CargoPython・uvDocker プルへ。手順はヘルプ、ノードは購入ページから。

リモート Mac・CI

跨境でも go mod download を安定させるなら、回線とキャッシュ設計が鍵です

MacPull の Apple Silicon リモート Mac でビルド環境を揃え、料金・プランはログイン不要でご覧いただけます。

24時間以内デリバリー ヘルプ