[Docker] CentOS6でwingを使わず最新のgitにする

お世話になっております。
しゃまとんです。

この前、Docker Hubに公開していたあるコンテナのリポジトリにissueが飛んできてたので確認してみると、「このコンテナのgolangのバージョンあげてや〜」みたいなのだったので対応することにしました。

対象のコンテナがCentOS 6で作られていて、コンテナにはgitとgolangがインストールされているものでした。
じゃあgolangのバージョンだけ上げておくか〜ということで対応して、コンテナをビルドすると途中でエラーに。

原因はgit2.x系をインストールする際に使っていたwingリポジトリが使えなくなっていたことでした。うーんこれは仕方がないということでgitを別の方法で入れることに。
(実は他のところで生きているかもしれません)

手法としては至って単純で、とりあえず標準のgitをyum installした後に、最新のgitをcloneしてきてビルドしておきかえるというものです。

バージョンはgithubのstableの最新をビルドするようにしました。
Dockerfileはこちらになります。

大事なのは、#install latest stable gitのところですね。

git及びビルド用パッケージをインストールして、

gitのlatest stableをclone

とりあえずインストールしたgitをアンイストール

make / make install

として最新版を使えるようにしました。
ちなみに以前はこんなふうでした。

行数は増えました(見やすさのため)が、コマンド的には一行でまとめておきました。
ただ、これはコンテナをビルドしたタイミングでバージョンに差異がでるので、気にする必要がある場合には、cloneするバージョンを指定するほうがいいかもですね。

以上です。