🍸
Debian系のDocker Imageに最新版のGitをインストールするDockerfile
概要
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
Discussion