Alpine LinuxベースでDockerイメージを作るときのapkのコマンドめも

Alpine LinuxベースでDockerイメージを作るとき、 apk add でパッケージインストールする前に apk update しないといけない。

# apk update
# apk add vim

が、これは次のように一行で書ける。

# apk --update add vim

ただ、これは /var/cache/apk/ にキャッシュを生成する。

# ls -la /var/cache/apk/

.tar.gz 形式のファイルが生成されていることがわかる。

Dockerイメージは可能な限り小さくしたい(そもそもAlpineを使うモチベーションの一つがそれ)ので、 rm -rf /var/cache/apk/* といった感じで削除するのが良い。

Alpineのバージョン3.3以降であれば、 --no-cache オプションを使うことで、キャッシュを削除してくれる。

# apk --no-cache add vim
# ls -la /var/cache/apk/

キャッシュがなくなっているはず。

また、Dockerイメージを小さくするときに重要なのは、 apk del で作業後の不要なパッケージの削除。

apk add --virtual を使うことで、まとめてインストールしたパッケージ群にエイリアスをつけることができ、 apk del alias でパッケージ群をまとめて削除できる。

# apk info
# apk --no-cache add --virtual=hoge-fuga curl php7 vim
# apk info
# apk del hoge-fuga
# apk info

apk info はインストール済みのパッケージが確認できるコマンド。
apk del hoge-fuga としたあとは、インストールしたパッケージがすべてなくなっているはず。

あと apk del --purge を使うと関連ファイルも一緒に削除してくれるらしい。