エラー: package github.com/golang/dep/cmd/dep: exec: "git": executable file not found in $PATH

1
package github.com/golang/dep/cmd/dep: exec: "git": executable file not found in $PATH

Docker Hubにある公式の alpine系統のイメージにはgitコマンドは入っていないため、depgo getを使おうとすると出るエラー。Dockerfile等で apk add gitするか、 debian系統のイメージを使う必要があります(参考

エラー: failed to initialize build cache at /.cache/go-build: mkdir /.cache: permission denied

Dockerのマウント領域に生成されるファイルが、そのままだとroot権限になってしまうので、それを回避するためにdockerのオプションでユーザ権限を変更した時に出るエラー。キャッシュディレクトリの書き込み権限が無いだけなので、XDG_CACHE_HOMEに、書き込み権限がありそうなディレクトリ(/tmp/.cacheとか)を指定して使うのが良いみたいです。(参考

1
2
3
4
5
6
// そのままだとエラーになる
$ docker run --rm -u 1000:1000 golang:1.14-buster go get -u github.com/golang/dep/cmd/dep
failed to initialize build cache at /.cache/go-build: mkdir /.cache: permission denied

// XDG_CACHE_HOMEを変更
$ docker run --rm -u 1000:1000 -e XDG_CACHE_HOME=/tmp/.cache golang:1.14-buster go get -u github.com/golang/dep/cmd/dep

(追記)この記事を書いた後に知った不都合な真実