こんにちは、garsueです。最近、手元の開発環境を一新していて遭遇したちょっとした小ネタを紹介します。同じ問題に遭遇する人もいそうな気がするので参考になれば幸いです。
事象: DockerにマウントしたGoのプロジェクトでビルドがコケる
当社の開発環境では開発中のコードをDockerのコンテナにマウントしてコンテナ中でビルドしています。その際に一部のコンテナで以下のエラーとともにビルドが失敗していました。
error obtaining VCS status: exit status 128
Use -buildvcs=false to disable VCS stamping.
VCS StampingはGo 1.18から追加された機能で、Gitなどのバージョンコントロールシステムからリビジョン番号などを取得してバイナリに埋め込む機能です。
エラーの詳細としては exit status 128
としか表示されておらず、なぜ失敗しているのか上記のエラーだけではパッとはわかりませんでした。
なお、単にエラーが起きないようにするだけならエラーメッセージにあるようにビルドオプションに -buildvcs=false
を追加すればいいだけです。大抵の場合、開発途中では不要かと思います。1