🏠
【Go】ローカル(社内)にあるリポジトリからモジュールをインポートするには
概要
ローカル環境のリポジトリに登録されているモジュールを利用したいことがあります。しかも、ローカルなので、https ではなく http でホストされているなんてことも。例えば、社内に用意した GitBucket を利用する場合などでしょうか。
そのようなリポジトリを参照する場合は、go mod tidy
がエラーになってしまいますので、以下の環境変数を設定しましょう。
-
GOPRIVATE
: プライベートな環境にあるリポジトリを参照できるようにする。 -
GOINSECURE
: 非セキュア(httpsではない)リポジトリを参照できるようにする。
GO環境変数の確認
環境変数の現在の設定は go env
コマンドで確認することができます。
GOPRIVATE
と GOINSECURE
は、デフォルトでは何も設定されていないと思います。
go env GOPRIVATE GOINSECURE
# デフォルトでは何も表示されない
GO環境変数の設定
これらの変数に、ローカル環境のリポジトリを設定しましょう。変数を設定するときは -w
オプションを使用します。例えば、リポジトリのURLが http://foo.local/...
だったとしたら、以下のような感じです。
go env -w GOPRIVATE=foo.local
go env -w GOINSECURE=foo.local
複数登録する場合は、foo.local,bar.local
のようにカンマ区切りにします。また、glob 指定なので *.local
のようにワイルドカードも利用できます。
GO環境変数をデフォルトに戻す場合
設定を元に戻したい場合は、-u
オプションを使用します。
go env -u GOPRIVATE
go env -u GOINSECURE
Discussion