🍸

Debian系のDocker Imageに最新版のGitをインストールするDockerfile

2021/01/18に公開

概要

VSCodeでGoを書きたかったので、GoのDockerイメージを作り、Remote - Containers拡張機能を使って開発環境を作ろうと思いました。
(普段Pythonを描くときはpyenv + poetryなのでGoでもgoenvを使おうと思っていたのですが、なんかVSCodeとgoenvの相性が非常に悪い気がします...)

この時、最新版のGitをDockerイメージに積んでおきたかったのですが、単にRUN apt-get install -y gitを記述するだけでは古いバージョンがインストールされてしまいます。
2020年4月頃にGitの深刻な脆弱性が発見されたこともあり、Gitのバージョンは最新のバージョンにしておく必要があると考えました。

今後何度もググることがありそうだったので、折角なのでDockerイメージに最新のGitをインストールするためのDockerfileを残しておこうと思います。

Dockerfile

今回はベースイメージはgolang:busterで、Git v2.30.0をソースからコンパイルしてインストールします。

FROM golang:buster

RUN apt-get update -y \
    && apt-get upgrade -y \
    && apt-get autoremove -y

# 必要なライブラリのインストール
RUN apt-get install -y gettext \
    libcurl4-gnutls-dev \
    libexpat1-dev \
    libghc-zlib-dev \
    libssl-dev \
    make \
    wget
    
# Gitをソースからコンパイルしてインストール
RUN wget https://github.com/git/git/archive/v2.30.0.tar.gz \
    && tar -xzf v2.30.0.tar.gz \
    && cd git-* \
    && make prefix=/usr/local all \
    && make prefix=/usr/local instal

特にUbuntuの場合

ベースイメージがUbuntuの場合はソースからコンパイルしなくても最新版がインストールできました。

FROM ubuntu:latest

RUN apt-get update -y \
    && apt-get upgrade -y \
    && apt-get autoremove -y \
    && apt-get install -y software-properties-common \
    && add-apt-repository ppa:git-core/ppa \
    && apt-get update -y

RUN apt-get install -y git 

参考

Debian 10にGitをインストールする方法

Discussion