A certain engineer "COMPLEX"

開発メモ その118 Dockerのビルド時間 (主にapt-getやyum) を短縮する

Introduction


備忘録。
Dockerで毎回buildまたはrunするとき、apt-getやyumが含まれると構築に時間がかかります。
ネットで調べてみると透過型Proxyとか色々対応策がありましたが、上手くいきませんでした。

そんな中、DockerHubから取得したイメージそのものを更新する、という手法を見つけました。

How to?


素晴らしいアイデアはこちら。

ubuntu や centos などの dockerhub イメージを使って Dockerfile を書くとき、大抵の場合 apt-get update や yum update を先頭に書きます。```FROM ubuntu:...

手順は下記

1. ホストOS上


# <base_image> から <temp_containe_name> というコンテナを実行
docker run -it --name <temp_containe_name> <base_image>

2. コンテナ内


# 取得したいパッケージのインストール
$ apt-get update && apt-get -y upgrade && apt-get clean
$ exit

3. ホストOS上


# <base_image> を上書き
$ docker commit <temp_containe_name> <base_image>
# 仮コンテナを削除
$ docker rm <temp_containe_name>

実際は、元となるイメージは複製しておくと、より安心ですね。
最終のビルドテスト時に、FROMをオリジナルに戻せば事足りそうです。

コメントを残す

メールアドレスが公開されることはありません。

%d人のブロガーが「いいね」をつけました。