問題
golangci-lint をコンテナ内で実施すると以下エラーが発生した コンテナ内でのみ発生して、ホストで実行すると発生しなかった
WARN [runner] Can't process results by diff processor: can't prepare diff by revgrep: no version control repository found
cmd/main.go:1: : error obtaining VCS status: exit status 128
Use -buildvcs=false to disable VCS stamping. (typecheck)
原因
golangci-lint は git の情報を取得しようとするが、コンテナ内の 作業ディレクトリが git の安全なディレクトリとして登録されていないために発生する
解決方法
以下 .gitconfig を作成して、compose.yaml で /root/.gitconfig:ro でマウントした
[safe] directory = /work # コンテナ内の作業ディレクトリを指定 directory = /work/api # コンテナ内の作業ディレクトリを指定